0

私は Angular2 Tour of Heroes チュートリアルに取り組んでおり、サービスの操作方法を学ぼうとしています。基本的なチュートリアルを機能させることができましたが、もう少し複雑にしようとすると、アプリが壊れてしまい、何が間違っているのかわかりません。

正常に動作する基本モデルは、モック ヒーロー オブジェクトと、各行のタイプを指定する hero.ts ファイルで構成されます。

これが、私が参照している Tour of Heroes チュートリアルです: https://angular.io/docs/ts/latest/tutorial/toh-pt4.html

hero.ts ファイル:

export class Hero {
    id: number;
    firstName: string;
    lastName: string;
    street: string;
    suite: string;
    city: string;
    state: string;
    zipcode: string;
}

モックヒーロー.ts ファイル:

import { Hero } from './hero';

export const HEROES: Hero[] = 
[
    {
        "id": 101, 
        "firstName": "John",
        "lastName": "Doe",
        "street": "111 Main Street",
        "suite": "Apt. 111",
        "city": "Anytown",
        "state": "US",
        "zipcode": "55555-0000"
    }
]

アカウントなどのネストされたオブジェクトを追加したい場合、次のエラーが発生します。

オブジェクト リテラルは既知のプロパティのみを指定でき、「アカウント」はタイプ「ヒーロー」には存在しません。

hero.ts ファイル:

export class Hero {
    id: number;
    firstName: string;
    lastName: string;
    street: string;
    suite: string;
    city: string;
    state: string;
    zipcode: string;
    accounts: ????;
    accountNum: string;
    accountName: string;
    type: string;
    availBalance: number
}

モックヒーロー.ts ファイル:

import { Hero } from './hero';

export const HEROES: Hero[] = 
[
    {
        "id": 101, 
        "firstName": "John",
        "lastName": "Doe",
        "street": "111 Main Street",
        "suite": "Apt. 111",
        "city": "Anytown",
        "state": "US",
        "zipcode": "55555-0000",
        "accounts": [ 
            {
                accountNum: "012345678",
                accountName: "Personal Checking",
                type: "checking",
                availBalance: 1000.00
            }
        ]
    }
]

したがって、「アカウント」を識別する必要があることはわかりましたが、オブジェクトを適切にネストできるように「アカウント」を分類するものがありません。

前もって感謝します。

4

1 に答える 1

1
export interface Account {
    accountNum: string;
    accountName: string;
    type: string;
    availBalance: number;
}

export class Hero {
    id: number;
    firstName: string;
    lastName: string;
    street: string;
    suite: string;
    city: string;
    state: string;
    zipcode: string;
    accounts: Array<Account>;
}
于 2016-12-10T10:37:00.023 に答える