如何在Angular 2中使用自定义方法模拟对象?
我想在Angular 2中为我的类定义添加自定义方法。但当我尝试创建模拟对象时,会出现如下错误(请参见Angular 2教程)如何在Angular 2中使用自定义方法模拟对象?,angular,mocking,Angular,Mocking,我想在Angular 2中为我的类定义添加自定义方法。但当我尝试创建模拟对象时,会出现如下错误(请参见Angular 2教程) refreshProducts():void是为我试图模拟的Search类声明的方法。如何才能最好地解决此错误?或者我是在尝试做一些向后的事情,在Angular 2中可能会以更传统的方式处理 search.ts(示例) mock-searches.js(示例) 如果您的对象文本不符合类结构,那么您可以直接“转换”它(或者更精确地说) 导出常量搜索:搜索[]=[ { 方
refreshProducts():void
是为我试图模拟的Search
类声明的方法。如何才能最好地解决此错误?或者我是在尝试做一些向后的事情,在Angular 2中可能会以更传统的方式处理
search.ts(示例)
mock-searches.js(示例)
如果您的对象文本不符合类结构,那么您可以直接“转换”它(或者更精确地说)
导出常量搜索:搜索[]=[
{
方框:{x:4,y:4,宽20,高20},
dateCreated:新日期(),
产品:[]
},
{
方框:{x:4,y:4,宽20,高20},
dateCreated:新日期(),
产品:[]
}
];
您只需要确保使用mock的任何东西实际上都不需要使用mock的refreshProducts()
方法Search
另请参见:
- 这解释了TypeSript的结构类型系统
public/app/mock-searches.ts(3,14): error TS2322: Type '{ box: { x: number; y: number; width: number; height: number; }; dateCreated: Date; eventIdStr: s...' is not assignable to type 'Search[]'.
Type '{ box: { x: number; y: number; width: number; height: number; }; dateCreated: Date; eventIdStr: s...' is not assignable to type 'Search'.
Property 'refreshProducts' is missing in type '{ box: { x: number; y: number; width: number; height: number; }; dateCreated: Date; eventIdStr: s...'.
public/app/search.service.ts(33,40): error TS2304: Cannot find name 'err'.
import { Rect } from './rect';
export class Search {
box: Rect;
dateCreated: Date;
products: Product[];
refreshProducts(): void {
// Do something useful
}
}
import { Search } from './search';
export const SEARCHES: Search[] = [
{
box: { x: 4, y: 4, width: 20, height: 20 },
dateCreated: new Date(),
products: []
}
];
export const SEARCHES: Search[] = [
<Search> {
box: { x: 4, y: 4, width: 20, height: 20 },
dateCreated: new Date(),
products: []
},
<Search> {
box: { x: 4, y: 4, width: 20, height: 20 },
dateCreated: new Date(),
products: []
}
];