Я не уверен, как это сформулировать, но я получаю странное поведение компилятора Typescript, когда в некоторых случаях использую интерфейс.
Например, это прекрасно работает, как и предполагалось.Нет ошибки компилятора, ничего.
interface Bar {
letter: 'a' | 'b';
}
declare class Foo {
constructor(bars: Bar[]);
}
const foo = new Foo([
{
"letter": "a"
},
{
"letter": "b"
}
]);
Но если я добавлю ненужный параметр в один из Bar
, как здесь:
const foo = new Foo([
{
"letter": "a"
},
{
"letter": "b"
"what": 175875,
}
]);
Затем компилятор выдаст эту неожиданную ошибку оба моих letter
параметров:
Type 'string' is not assignable to type '"a" | "b"'.
Я что-то упустил или это какая-то проблема с компилятором?