プロパティはインデックス署名と互換性がありません 質問する

プロパティはインデックス署名と互換性がありません 質問する
const test = [
    {
        "a": 1
    },
    {
        "b": 1
    }
]
interface t {
    [key: string]: number
}
const ttt: t[] = test

プロパティ '"b"' はインデックス シグネチャと互換性がありません。タイプ 'undefined' はタイプ 'number' に割り当てることができません。同じキーの両方を b または a に名前変更すると機能します。

ベストアンサー1

testには型がないので、この型に推論されます:

({ a: number; b?: undefined; } | { b: number; a?: undefined; })[]

testは に割り当てられますが、新しいインターフェース にttt未定義の可能性のあるキーを持つことは互換性がありません。bt

この問題を解決するには、次の場所に直接タイプを追加しますtest

const test: t[] = [
    {
        "a": 1
    },
    {
        "b": 1
    }
]

おすすめ記事