typescriptはインターフェイスのキーを動的に呼び出すことを許可しますか

1
2022.01.12

私はインターフェイスを持っています:

interface MyInterface {
   field_1 : string
   field_2 : string
   // ... other fields with a certain number
}

そして、私はMyInterfaceのインスタンスを受け取り、このオブジェクトの属性の値を動的に取得する必要があるgetter関数を持っています

const myFactory = (myInstance:MyInterface):string => { 
    // Here some logic to retrieve a specific number 
    // for convenience lets say that the output of this logic is 1
    let output = 1
    return myInstance[`field_${output}`] // <=== This does not work since it calls a property of the interface dynmically
}

インターフェイスのプロパティを動的に呼び出す方法は?

私は keyof 演算子 を見たが、私はここでそれを使用する方法がわからない

回答
3
2022.01.12

オプション 1:

  type myKey = `field_${'1' | '2' | '3'}`

  const output = '3'
  const fieldKey: myKey = `field_${output}`

オプション 2:

 const fieldKey = `field_${output}` as keyof MyInterface
 return myInstance[fieldKey]