typescript - Egenskapen är inkompatibel med indexsignaturen
const test = [
{
"a": 1
},
{
"b": 1
}
]
interface t {
[key: string]: number
}
const ttt: t[] = test
Egenskapen '"b"' är inkompatibel med indexsignaturen. Typen 'undefined' kan inte tilldelas typen 'number'. Det fungerar om jag byter namn på nyckeln till antingen b eller a eftersom båda är samma nyckel.
Svar #1
Eftersom test inte har en typ, härleds den till denna typ:
({ a: number; b?: undefined; } | { b: number; a?: undefined; })[]
test tilldelas sedan till ttt, men det är inte kompatibelt att ha en möjligtvis odefinierad b-nyckel i det nya gränssnittet t.
Du kan åtgärda detta genom att lägga till typen direkt till test:
const test: t[] = [
{
"a": 1
},
{
"b": 1
}
]
