お世話になっております。
Typescript Nuxtでの型定義の方法をおしえていただきたいです。
現状以下のコードを書いていてエラーが出てしまっています。
型定義が問題なのかforの部分で、動的にキーを入れようとしているのが問題だと思うのですが、
どうしても動的に入れたい場合どうすればいいでしょうか。
Store部分で、AddUserRequestの型定義はしておきたいと思っています。
コンポーネント
vue
1import {AddUserRequest} from "~/types/AddUserRequest"; 2 3 〜省略〜 4 // 子コンポーネントで入れた内容をここで受け取り、一旦valに入力値を格納しています 5 form:formType = [ 6 {key: 'full_name', label: 'お名前', val: '', error: ''}, 7 {key: 'tel', label: '電話番号', val: '', error: ''}, 8 9] 10 11 〜省略〜 12 onRegister(): void { 13 let apiParam:AddUserRequest = {}; 14 15 for (let formData of this.form) { 16 let key: keyof AddUserRequest = formData.key; // ここでエラー 17 apiParam[key] = formData.val; 18 } 19 // storeでPostを投げようとしています 20 userStore.addUser(apiParam); // apiParam:AddUserRequest 21 } 22 〜省略〜
store
ts
1 @Action({ rawError: true }) 2 async addUser(param: AddUserRequest) { 3 const posts = await api.post('/user/create', param); 4 5 console.log(posts); 6 } 7
型定義
ts
1export interface AddUserRequest { 2 full_name?: string 3 tel?: string 4}
エラー内容
TS2322: Type 'string | number' is not assignable to type 'never'. Type 'string' is not assignable to type 'never'.
初歩的な質問で恐縮ではございますが、よろしくお願いいします。
あなたの回答
tips
プレビュー