2017-06-28 4 views
2

私はカスタムモデルタイプでデータをモックしようとしています。タイプ '{id:number、name:string}'をインデックスタイプとして使用できません。

モデル

export class CategoryModel { 
    /** 
    * Properties 
    */ 
    public id : number; 
    public name : string; 

    /** 
    * Getters 
    */ 
    get Id():number{ 
    return this.id; 
    } 
    get Name():string { 
    return this.name; 
    } 

    /** 
    * Setters 
    */ 
    set Id(id:number){ 
    this.id = id; 
    } 
    set Name(name:string) { 
    this.name = name; 
    } 

    constructor(id:number,name:string) 
    { 
    this.Id = id; 
    this.Name = name; 
    } 

} 

モック

import { CategoryModel } from '../models/category'; 

export const CATEGORIES: CategoryModel[{id:number, name:string}] = [ 
    { id: 0, name: "rzrzr"}, 
    { id: 1, name: "rerr"}, 
    { id: 2, name: "aze"} 
]; 

しかし、私は言ってこれらのファイルにエラーがあります:

:私はこれをしようとすると

Type '{id:number, name:string}' cannot be used as an index type

import { CategoryModel } from '../models/category'; 

export const CATEGORIES: CategoryModel[] = [ 
    { id: 0, name: "rzrzr"}, 
    { id: 1, name: "rerr"}, 
    { id: 2, name: "aze"} 
]; 

私はこのエラーがあります:

Type '{id:number, name:string}' is not assignable to type 'CategoryModel[]'. Type '{id:number, name:string}' is not assignable to type 'CategoryModel'. Property 'Id' is missing in type '{id:number, name:string}'

あなたは任意のヒントを持っていますか?モデルのコンストラクタparamsを私の模擬モデルに渡す方法が不足していると思います。

答えて

3

あなたはここでミスをした:

CategoryModel[{id:number, name:string}] 

CategoryModelはすでにプロパティidnameを有しているObjectとして定義されます。だから、あなたは単にCategoryModel[]としてそれを宣言する必要があります:こんにちは、私はすでにそれを試してみてください

export const CATEGORIES: CategoryModel[] = [ 
    new CategoryModel(0, "rzrzr"), 
    new CategoryModel(1, "rerr"), 
    new CategoryModel(2, "aze") 
]; 
+0

を私:

import { CategoryModel } from '../models/category'; export const CATEGORIES: CategoryModel[] = [ { id: 0, name: "rzrzr"}, { id: 1, name: "rerr"}, { id: 2, name: "aze"} ]; 

はまた、あなたがあなたの配列に項目を追加しながら、それを使用する必要がありますので、CategoryModelのコンストラクタを作成しました別のエラーがある、私の質問を更新する – DMCISSOKHO

+0

@DMCISSOKHO私の答えを更新しました。 –

+1

ありがとう、私はとても愚かで、私はそれを使うのを忘れています:)私は数分であなたのansxerを受け入れます – DMCISSOKHO

関連する問題