Don*_*ana 4 typescript angular
我正在检查代码示例,甚至文档都没有得到任何信息.然后,我谷歌一段时间,仍然没有.
我们为什么打字
ngOnInit() { ... }
Run Code Online (Sandbox Code Playgroud)
代替
private ngOnInit() { ... }
Run Code Online (Sandbox Code Playgroud)
或者,就此而言,只要我抱怨这个话题
private ngOnInit() : void { ... }
Run Code Online (Sandbox Code Playgroud)
拥抱TypeScript的全部力量?
编辑
根据评论我需要扩展问题.我们为什么不写:
public ngOnInit() : void { ... }
Run Code Online (Sandbox Code Playgroud)
代替?
根据评论我需要扩展问题.我们为什么不写:
public ngOnInit() : void { ... }相反?
TypeScript能够提供上下文类型信息,因此在实现接口时,不需要从接口重复类型.
例如,如果您考虑以下缩短的示例:
interface OnInit {
ngOnInit(): void
}
const example: OnInit = {
ngOnInit: function () { }
}
Run Code Online (Sandbox Code Playgroud)
如果将鼠标悬停在上面,ngOnInit您将看到返回类型已经无效,因为它已根据情况为您推断出返回类型.
简而言之,TypeScript希望避免重复不必要的注释.
有一种情况可能会让您考虑添加返回类型注释.如果没有注释,则允许以下内容:
const x: OnInit = {
ngOnInit: function () {
return 4;
}
}
Run Code Online (Sandbox Code Playgroud)
在OnInit接口的特定情况下,这不会导致任何问题,因为忽略了返回类型.但是,如果您想要告知您的返回类型看起来不正确,那么注释会为您提供其他信息:
interface OnInit {
ngOnInit(): void
}
const x: OnInit = {
ngOnInit: function (): void {
return 4;
}
}
Run Code Online (Sandbox Code Playgroud)
像这样:
| 归档时间: |
|
| 查看次数: |
1572 次 |
| 最近记录: |