2017-06-02 17 views
0

ではありません:(?またはメソッド)例外TypeError:私は非常に単純なクラスなどを持っている機能の活字体

export class Party { 
    constructor(
     public id:Identifier, 
     public partyName: PartyName, 
     public person:Person 
    ) { } 

    copy():Party { 
     let copyParty = new Party(this.id, null, null); 
     return copyParty; 
    } 
} 

私はコピー機能を使用する別のクラス(特にサービス)のように、このクラスをインポートするには:

EXCEPTION: Uncaught (in promise): TypeError: party.copy is not a function 

私はを試してみました:

... (party => { 
let copyParty:Party = party.copy(); 
... 

は、しかし、私は、次の例外を取得します10(いくつかの例外があります)とlet copyParty:Party = party.copy;(関数の定義を返します。オブジェクトのコピーは返しません)。

私はここで何が欠けていますか?おかげさまで

+3

を持つオブジェクトを取得します。この方法をインスタンス化された 'Party'オブジェクトです。それはどこから来たのですか? – PierreDuc

+0

引数 '(party:Party =>) 'を入力すると、パーティーオブジェクトが渡されていない理由を追跡するのに役立ちます。 –

+0

@PierreDuc' party'インスタンスは '.then(res => res.json()としてParty [])[0]) 'REST呼び出しのブロック – suat

答えて

5

オブジェクトを特定の型に実際にキャストする際に、型ヒントを使用することはできません。これはちょうどコンパイラを幸せにし、コードを読みやすくするために使用されています。

あなたは実際にREST呼び出しの後にオブジェクトをインスタンス化する必要があります

.then(res => res.json().map(party => new Party(party.id, party.partyName, party.person))[0] 

あなたは私の推測では、あなたが得る `party`、ではないということですcopy方法

関連する問題