Задать вопрос

Почему определение свойства объекта после определения переменной не работает?

Есть код:

interface foo { [property: string]: number }

var bar: foo = { baz: 1 };

bar.bak = 1;


Мы можем определить переменной свойство `baz`, но не можем потом добавить свойство `bak`, потому что оно не подходит под интерфейс. В то же время, компилятор не ругается если мы хотим добавить свойство в момент определения переменной. Разницы не должно быть никакой, но компилятор работает вот так.

Как это работает, и есть ли решение чтобы это обойти?
  • Вопрос задан
  • 98 просмотров
Подписаться 1 Оценить Комментировать
Ответ пользователя Riim К ответам на вопрос (2)
@Riim
Мож так:
interface foo { [property: string]: number; bak?: number; }

var bar: foo = { baz: 1 };

bar.bak = 1;

?
Ответ написан