首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >示例代码:在angular2中生成模拟

示例代码:在angular2中生成模拟
EN

Stack Overflow用户
提问于 2016-10-02 04:47:03
回答 1查看 126关注 0票数 0

我正在学习Angular2。在DI页面中,有用于模拟的示例代码。https://angular.io/docs/ts/latest/guide/dependency-injection.html

这是什么意思?

代码语言:javascript
复制
let mockService = <HeroService> {getHeroes: () => expectedHeroes }

它看起来像从mockService函数定义HeroService函数。

<HeroService>是什么?是<HeroService>铸造吗?

代码语言:javascript
复制
let expectedHeroes = [{name: 'A'}, {name: 'B'}]
let mockService = <HeroService> {getHeroes: () => expectedHeroes }

it('should have heroes when HeroListComponent created', () => {
  let hlc = new HeroListComponent(mockService);
  expect(hlc.heroes.length).toEqual(expectedHeroes.length);
});
EN

回答 1

Stack Overflow用户

发布于 2016-10-02 06:48:28

在JavaScript和TypeScript中,{a: b}是一个对象文本。它定义了一个具有一个属性a的对象,其值为b

所以

代码语言:javascript
复制
{getHeroes: () => expectedHeroes }

是一个具有一个名为getHeroes的属性的对象,其值为() => expectedHeroes() => expectedHeroes。因此,该值是一个不带参数的函数(()),并返回值expectedHeroes

<HeroService>被称为类型断言

有时,您最终会遇到比TypeScript更了解某个值的情况。通常,当您知道某个实体的类型可能比其当前类型更具体时,就会发生这种情况。 类型断言是一种告诉编译器“相信我,我知道我在做什么”的方法。类型断言类似于在其他语言中强制转换的类型,但不执行数据的特殊检查或重构。它不影响运行时,完全由编译器使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39813955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档