中級 › インデックスシグネチャと矛盾する型のプロパティを宣言するとエラーになる › パターン4
インデックスシグネチャと矛盾する型のプロパティを宣言するとエラーになる
[key: string]: numberのようなインデックスシグネチャを持つinterfaceでは、個別に宣言する具体的なプロパティも、インデックスシグネチャの型と互換性がなければ宣言できません。
1 interface Prices { 2 [key: string]: number; 3 _____________; ^ 4 } 5 console.log("ok");
main.ts(3,3): error TS2411: Property 'label' of type 'string' is not assignable to 'string' index type 'number'.
空欄を埋めてコンパイルを通す
インデックスシグネチャは全プロパティがnumber型であることを要求します。labelをstring型で宣言すると矛盾します。
次の問題