前提
いつもお世話になっております。
表題の件ですが、for文の中で配列を利用して新しくオブジェクトを生成したいと考えているのですが、その中でkeyにテンプレートリテラルをkeyにする際に型の指定でエラーが出てしまいます。
コード
typescript
1import React from 'react'; 2import logo from './logo.svg'; 3import './App.css'; 4 5interface testIf { 6 test_1:string; 7 test_2:string; 8 test_3:string; 9 test_4:string; 10 test_5:string; 11} 12 13function App() { 14 const testArr = [ 15 'aaa', 16 'bbb', 17 'ccc', 18 'ddd', 19 'eee' 20 ] ; 21 22const newArray = {} as testIf; 23 24 for (let i = 1; i <= 5; i++) { 25 const keyName = `test_${i}`; 26 const objKey: keyof testIf = keyName; 27 28 newArray[objKey] = testArr[i-1]; 29 } 30 31console.log() 32 33return ( 34 <div className="App"> 35 test 36 </div> 37 ); 38}
発生している問題・エラーメッセージ
上記のコードだと、 const objKey: keyof testIf = keyName;で、 型 'string' を型 'keyof testIf' に割り当てることはできません というエラーが出てしまいます。
試したこと
keyNameの中身をtest_1やtest_2などベタがきで指定するとエラーがなくまりました。 keyNameの中身がテンプレートリテラルになっている場合はobjKeyにはどのような型を指定すればよいか教えていただければ幸いです。 よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/07 09:15