2015-10-01 21 views
5

TypeScriptのPluralsightコースを通過していますが、コースで有効なコードであると説明されていますが、これはエラーをスローします。余分なプロパティを持つインターフェイスを実装するTypeScriptオブジェクトのエラー

エラーTS2322: '{favouriteSport:string;名前:文字列;子供:数字;年齢: calcPets:()=>数値; makeYo ... 'は' Person '型に代入できません。 オブジェクトリテラルは既知のプロパティのみを指定することができ、 'favouriteSport'は 'Person'型には存在しません。

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コンパイラオプションを渡すことで、この警告を抑制することもできます。 GR8勤務

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

。リンクのThnx。 –

関連する問題