参数列表中的管道号对角度意味着什么?

时间:2018-10-18 11:59:11

标签: angular typescript

我正在学习有角度的知识,并遵循官方有角度的docs。 其中一种方法使我失望,我想了解发生了什么。

deleteHero(hero: Hero | number): Observable<Hero> { const id = typeof hero === 'number' ? hero : hero.id; const url = ${this.heroesUrl}/${id};

参数列表中的管道号应该做什么? (我检查了一下,默认情况下,没有附带角度的数字管道。)

为什么是const id = type of hero === number ? hero : hero.id。 为什么不只是const id = hero.id

不幸的是,文档没有在随后的部分中对此进行解释。

谢谢

2 个答案:

答案 0 :(得分:2)

这不是管道运算符(只能在HTML模板内部使用),而是TypeScript注释函数参数类型的方式。

deleteHero(hero: Hero | number)

这意味着该函数接受一个类型为Heronumber的参数。在本教程的上下文中,可以通过提供英雄参考或英雄ID来删除英雄,这就是在功能正文开头进行检查的原因。

答案 1 :(得分:0)

这里number不是管道,这意味着英雄参数可以是Heronumber类型,在您的示例中,|意味着OR, 关于第二个问题,它检查类型号,因为类型号不能具有id属性,并且会给出错误,这就是为什么要检查它是否是数字分配号,否则要检查是否是{{ 1}}分配Hero