2017-08-20 12 views
0

私はこれがあります。活字体インタフェース未定義

public getFriends() : IUser[] { 
    let friends: IUser[]; 
    friends[0].Id = "test"; 
    friends[0].Email = "asdasd"; 

    return friends; 
    } 

愚かな音でしたが、なぜ私は取得しています友人[0]未定義?この場合、ユーザータイプのクラスがないと、私は何をすべきですか?このステートメントで

+1

のみのタイプがありますフィールドに対して宣言されていますが、初期化されていません。例えば'友達にする:IUser [] = []'。 –

+1

あなたは '友達に'押し込む必要があります。 –

+1

配列を作成することは決してありません。その配列内のオブジェクトはずっと少なくなります。 – deceze

答えて

3

let friends: IUser[]; 

あなたはfriendsとその種類IUser[]を宣言している、あなたはまだそれを初期化していないので、friendsの値は、この時点ではundefinedです。

そうで、最初のステップは、それを初期化することです:

let friends: IUser[] = []; 

配列である、あなたはそれにいくつかのコンテンツをプッシュする必要があります。

// this is one (likely) way of creating a IUser instance, there may be others 
let friend: IUser = {Id: "test", Email: "asdasd"}; 

そして配列に追加します。:まず、あなたがIUserを作成する必要が

friends.push(friend); 

だからあなたの最終的なコードは次のようになります。

public getFriends() : IUser[] { 
    let friends: IUser[] = []; 

    let friend: IUser = {Id: "test", Email: "asdasd"}; 
    friends.push(friend); 

    return friends; 
} 
関連する問題