[英]Why is not ngOnInit in Angular private?
我正在檢查代碼示例,甚至文檔都沒有得到任何信息。 然后,我谷歌一段時間,仍然沒有。
我們為什么打字
ngOnInit() { ... }
代替
private ngOnInit() { ... }
或者,就此而言,只要我抱怨這個話題
private ngOnInit() : void { ... }
擁抱TypeScript的全部力量?
編輯
根據評論我需要擴展問題。 我們為什么不寫:
public ngOnInit() : void { ... }
代替?
根據評論我需要擴展問題。 我們為什么不寫:
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;
}
}
像這樣:
該方法是從Angular調用的。 如果它是私人的,則無法從外部調用。
Angular會忽略返回的值,因此返回類型無關緊要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.