Показать сообщение отдельно
  #1 (permalink)  
Старый 18.06.2016, 18:02
Pit Pit вне форума
Интересующийся
Отправить личное сообщение для Pit Посмотреть профиль Найти все сообщения от Pit
 
Регистрация: 21.05.2015
Сообщений: 14

TypeScript: непонятна реализация interface
Приветствую, камрады!
Имеем TS 1.8

Пишу так:

var v: Object;
v = {name1: 'val1'}


Все хорошо компилируется. Вроде как Object совместим с любым объектом.
Пишу вот так:

interface MyInterface {
    name2: string;
}

var v: MyInterface;
v = {name1: 'val1'}  // <--- РУГАЕТСЯ


И он ругается: Error:(138, 55) TS2322: Type '{ name1: "val1"}' is not assignable to type 'MyInterface '.
Object literal may only specify known properties, and 'name1' does not exist in type 'MyInterface '.

НО! Если только "known properties", то почему не ругаетс на первый вариант с Object? Ведь в lib.d.ts Object также определен как Interface:

> interface Object {...

И, естественно, никакого name1 там также не описано...
Ничего не понимаю!

Последний раз редактировалось Pit, 18.06.2016 в 18:05.
Ответить с цитированием