2015-10-01 2 views
5

Я просматриваю курс Pluralsight по TypeScript, и это вызывает ошибку, в то время как это объясняется как действительный код в курсе.Интерфейс объекта TypeScript с дополнительными свойствами error

ошибка TS2322: Тип '{favouriteSport: string; name: string; дети: число; возраст: число; calcPets:() => число; makeYo ... 'не присваивается типу' Person '. Объектный литерал может указывать только известные свойства, а «favouriteSport» не существует в типе «Человек».

interface Person{ 
    age: number, 
    name: string, 
    kids: number, 
    calcPets:()=> number; 
    makeYounger: (years: number) => void; 
    greet: (msg: string) => string; 
} 

var p: Person = { 
    favouriteSport: "tennis", 
    name: "Michael", 
    kids: 4, 
    age: 44, 
    calcPets: function(){ 
     return this.kids * 2; 
    }, 
    makeYounger: function(years: number){ 
     this.age -= years; 
    }, 
    greet: function(msg: string){ 
     return msg + ', ' + this.name; 
    } 
} 

ответ

2

Этих типов проверок были добавлены в последнее время в 1,6

Начиная с 1.6, мы ужесточением части нашего объекта проверки правил. [...] Вы также можете подавить это предупреждение, передав параметр -suppressExcessPropertyErrors.

http://blogs.msdn.com/b/typescript/archive/2015/09/02/announcing-typescript-1-6-beta-react-jsx-better-error-checking-and-more.aspx

3

Взгляните на эту GitHub issue. Похоже, что поведение изменилось в 1.6. Я предполагаю, что курс, который вы принимаете, был написан до 1.6.

+0

Работал gr8. Thnx для ссылки. –

Смежные вопросы