我尝试使用自定义模型类型模拟数据。
模型
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"}
];
但我在这些文件中有错误说:
类型'{id:number,name:string}'不能用作索引类型
当我尝试这个时:
import { CategoryModel } from '../models/category';
export const CATEGORIES: CategoryModel[] = [
{ id: 0, name: "rzrzr"},
{ id: 1, name: "rerr"},
{ id: 2, name: "aze"}
];
我有这个错误:
类型'{id:number,name:string}'不能分配给'CategoryModel []'类型。类型“{id:number,name:string}”不能分配给“CategoryModel”类型。类型“{id:number,name:string}”
中缺少属性“Id”
你有任何提示吗?我想我错过了如何将我的模型构造函数params传递给我的模拟器。
答案 0 :(得分:3)
你在这里弄错了:
CategoryModel[{id:number, name:string}]
CategoryModel
已定义为Object
,其中包含属性id
和name
。因此,您只需将其声明为CategoryModel[]
:
import { CategoryModel } from '../models/category';
export const CATEGORIES: CategoryModel[] = [
{ id: 0, name: "rzrzr"},
{ id: 1, name: "rerr"},
{ id: 2, name: "aze"}
];
另外,您为CategoryModel
创建了构造函数,因此您应该在向数组添加项目时使用它:
export const CATEGORIES: CategoryModel[] = [
new CategoryModel(0, "rzrzr"),
new CategoryModel(1, "rerr"),
new CategoryModel(2, "aze")
];