2017-04-06 4 views
0

ここに私のクラスとインタフェースです:はTypeError:オブジェクトをインスタンス化するときに、プロパティを読み取ることができません未定義の「置き換え」は

export interface Foo{ 
    numFoo: string 
} 

export class Blah{ 
    constructor(
    public numBlah: string, 
    public arrayOfFoos: Array<Foo>, 
    public idBlah: string 
    ) { } 
} 

let numBlah: string = 'numBlah' 
let arr: Array<Foo> =[{numFoo: '1'}] 
let idBlah: string = 'id' 
let blah = new Blah(numBlah, arr, idBlah) 

は、私はちょうど直接引数を渡すことによって、新しい何とか項目をインスタンス化することを期待(の名前をmentionningありませんフィールド)。なぜ私はこのエラーが発生している?

+0

あなたのコードはコンパイルし、使用しているtypescriptですのバージョンを、私のために正しく動作しますか? – Motti

+0

私のタイプスクリプトのバージョンは2.1.6です – Scipion

+0

これはあなたが使用しているコードと同じですか?それは上品に見える – Motti

答えて

0

は、古い学校のOOPのバージョンにコードを再フォーマットしてください:

export interface Foo { 
    numFoo: string; 
} 

export class Blah { 

    public numBlah: string; 
    public arrayOfFoos: Foo[]; 
    public idBlah: string; 

    constructor (numBlah: string, arrayOfFoos: Foo[], idBlah: string) { 
     this.numBlah = numBlah; 
     this.arrayOfFoos = arrayOfFoos; 
     this.idBlah = idBlah; 
    } 

} 

let numBlah: string = 'numBlah'; 
let arr: Foo[] = [{ numFoo: '1' }]; 
let idBlah: string = 'id'; 

let blah = new Blah(numBlah, arr, idBlah); 

console.log(blah.idBlah); 
関連する問題