私は次のパターンを使用しようとしています:
enum Option {
ONE = 'one',
TWO = 'two',
THREE = 'three'
}
interface OptionRequirement {
someBool: boolean;
someString: string;
}
interface OptionRequirements {
[key: Option]: OptionRequirement;
}
これは非常に簡単なように思えますが、次のエラーが発生します。
インデックス シグネチャ パラメータ タイプはユニオン タイプにできません。代わりにマップされたオブジェクト タイプの使用を検討してください。
何が間違っているのでしょうか?
ベストアンサー1
TS の「in」演算子を使用して、次の操作を実行できます。
enum Options {
ONE = 'one',
TWO = 'two',
THREE = 'three',
}
interface OptionRequirement {
someBool: boolean;
someString: string;
}
type OptionRequirements = {
[key in Options]: OptionRequirement; // Note the "in" operator.
}