2017-05-09 8 views
2

私はいくつかのデータをボタンのリストとして表示するモックアップアプリケーションを作成しようとしていました。私はすべてを実装しましたが、私は今この問題に直面しています。私は配列とデータのための別のクラスを初期化しました。配列の汎用タイプですか?

-items.ts 

    export class ItemPage { 

    items: Item[] = []; 

    constructor() { 

    this.items.push(
     new Item(1, 'Apple', 'Green', 6, true)); 
    this.items.push(
     new Item(2, 'Banana', 'Yellow', 15, false)); 
    } 

とデータクラスは、私はionic serveを実行したとき、私はitems: Item[] = [];に問題に直面しています。この

-item.ts 

export class Item { 
    constructor(
    id: number, 
    fruit: string, 
    color: string, 
    quantity: number, 
    onStock: boolean, 
) { } 
} 

のように見えます。それはGeneric type 'Item' requires 2 type argument(s)type Item<K extends string, T> = { [P in K]: T; } Construct a type with a set of properties K of type Tと言います。
私はそれを解決しようとしましたが、それは助けにはなりませんでした、誰もがどのようにこれを解決するアイデアを持っていますか?

おかげ

+3

'Item'はIonicの予約語/クラスです。 'Item'を別の名前に変更してみてください。 –

+0

私はあなたが提案したものを試しましたが、私はまだ同じ問題があります – Maged

+0

アイテム []おそらく? –

答えて

0

私は正確に問題を再現するために管理し、代わりに2つの空のオブジェクトで終わるませんでした。 Plunker

しかしを私は非常にあなたをお勧め:

export class Item { 
    constructor(
    public id: number, 
    public fruit: string, 
    public color: string, 
    public quantity: number, 
    public onStock: boolean, 
) { } 
} 

が正常に動作するように見えた:エラーは、publicとしてあなたのクラスのプロパティを設定し、これにクラスを変更していないようですクラスやその他の理由で関数を持つ必要がない場合は、代わりにインタフェースを使用する必要があります。だから私はあなたがインターフェイスを作ると言うでしょう:

export interface Item { 
    id: number; 
    fruit: string; 
    color: string; 
    quantity: number; 
    onStock: boolean; 
} 

constructor(private navController: NavController) { 
    this.items.push({id:1, fruit:'Apple', color:'Green', quantity:6, onStock:true}); 
    this.items.push({id:2, fruit: 'Banana',color:'Yellow',quantity:15,onStock:false}) 
} 

うまくいけば、これは助けてください!

+0

ねえ、このコードはどうやって行ったのですか?助けてくれたの? :) – Alex

+0

ねえ、ええ、それは感謝しました。 別のクラスの軍隊を使用したいのですが、どうすればいいですか? 私はこれを試しました: '輸出クラスの統計{ public stat:number; コンストラクタ(アイテム:アイテム[]){ this.stat = items.length; } } ' しかし、それは私に「Generic type」の項目が2つのタイプの引数を必要とするという同じエラーを与え続けていました – Maged

+0

これがあなたの問題を解決したので、あなたは親切に答えを受け入れるでしょうか? ..軍隊とは何ですか?そしてこのクラスは何ですか?それは新しいクラスですか? – Alex

関連する問題