私はTypescriptについてthis official documentを読んでTypescriptを学習しています。typescript "インデクサーのサブタイプではありません"とはどういう意味ですか?
私はこのコードを理解することはできません:あなたはインデックス型の内側に '長さ' を入れない理由
interface NumberDictionary {
[index: string]: number;
length: number; // ok, length is a number
name: string; // error, the type of 'name' is not a subtype of the indexer
}
まずを、???
let myDict : NumberDictionary;
myDict[10] = 23;
NumberDictionaryはインデックスタイプです。 NumberDictionary定義に長さがあるのはなぜですか?インデックス型は[10]、長さがあるのはなぜですか? javascriptの配列オブジェクトには長さがありますが、配列のインデックス型ですか?その場合、上記の例で長さを定義する理由は何ですか?それは必要ですか? 申し訳ありませんが私の暴言。あなたは私が非常に混乱しているのを見ることができます。
第二に、
name: string;// error, the type of 'name' is not a subtype of the indexer
私は、この行のコメントを理解していません。なぜnameはインデクサのサブタイプでなければならないのですか?インデクサーは[10] = "Tom"のようなものですが、インデクサーのサブタイプは何ですか?
間の矛盾を参照してください。だから、私は 'ok'というコメントは、型チェッカーの観点からは大丈夫だということを意味しているだけで、一般的には意味がありません。 – artem