这个Angular的文档中有关括号的愚蠢陈述是什么?

时间:2017-07-18 21:05:26

标签: angular

在阅读Angular Injectable services时,我发现了这句话:

  

不要忘记括号。省略它们会导致难以诊断的错误。

import { Injectable } from '@angular/core';

@Injectable()
export class HeroService {
}
  • 真的?
  • 什么错误?
  • 为什么诊断困难?
  • 在什么情况下难以诊断?
  • 在诊断错误时,所有编辑都是否相同?
  • 是否需要使用括号来避免这种神秘的错误?

足够的问题。

更新

  

作为表达式调用时,无法解析类装饰器的签名。提供的参数与呼叫目标的任何签名都不匹配。

即使这是我得到的错误,但这真的是所谓的"困难"错误诊断?

1 个答案:

答案 0 :(得分:4)

取自:https://github.com/Microsoft/TypeScript/issues/13173,指的是组件声明后括号的必要性。我想这适用于Injectable装饰器。

  

示例中的Component函数根本不是装饰器   装饰工厂。也就是说它只是你的一个功能   调用,也许传递一个参数,它返回装饰器   通过@语法应用于目标。