我正在检查代码示例,甚至the docs都没有获取任何信息。然后,我谷歌一段时间,仍然没有。
我们为什么要输入
ngOnInit() { ... }
而不是
private ngOnInit() { ... }
或者,就此而言,只要我抱怨这个话题
private ngOnInit() : void { ... }
拥抱TypeScript的全部功能?
修改
根据评论我需要扩展问题。为什么我们不写:
public ngOnInit() : void { ... }
代替?
答案 0 :(得分:7)
根据评论我需要扩展问题。我们为什么不写:
public ngOnInit() : void { ... }
代替?
TypeScript能够提供上下文类型信息,因此在实现接口时,您无需从界面重复类型。
例如,如果您考虑以下缩短的示例:
interface OnInit {
ngOnInit(): void
}
const example: OnInit = {
ngOnInit: function () { }
}
如果将鼠标悬停在ngOnInit
上,您会看到返回类型已经无效,因为它已根据情况为您推断出返回类型。
简而言之,TypeScript希望您不必重复不必要的注释。
有一种情况可能会让您考虑添加返回类型注释。如果没有注释,则允许以下内容:
const x: OnInit = {
ngOnInit: function () {
return 4;
}
}
在OnInit
接口的特定情况下,这不会导致任何问题,因为忽略了返回类型。但是,如果您希望被告知您的返回类型看起来不正确,那么注释会为您提供其他信息:
interface OnInit {
ngOnInit(): void
}
const x: OnInit = {
ngOnInit: function (): void {
return 4;
}
}
像这样:
答案 1 :(得分:3)
从Angular调用该方法。 如果它是私人的,它就无法从外面调用。
Angular会忽略返回的值,因此返回类型并不重要。