Свойство несовместимо с индексной подписью - PullRequest
4 голосов
/ 10 июля 2020
const test = [
    {
        "a": 1
    },
    {
        "b": 1
    }
]
interface t {
    [key: string]: number
}
const ttt: t[] = test

Свойство "b" 'несовместимо с индексной подписью. Тип undefined не может быть присвоен типу number. он работает, если я переименую ключ либо в b, либо в оба одинаковых ключа.

1 Ответ

3 голосов
/ 10 июля 2020

Поскольку test не имеет типа, он выводится из этого типа:

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

test затем присваивается ttt, но он несовместим с возможным неопределенным b ключ в новом интерфейсе t.

Вы можете исправить это, добавив тип непосредственно в test:

const test: t[] = [
    {
        "a": 1
    },
    {
        "b": 1
    }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...