![](/img/trans.png)
[英]How to define typescript/Oracledb npm connection in class and method format?
[英]Define typescript class method
我找不到有關類方法“先聲明然后初始化”的任何信息,例如我可以這樣做(下面的代碼),先聲明getName()
然后對其進行初始化,tslint提示我我不能這樣做,然后我應該做什么如果不想構造,例如public getName(name: string): string { return this.name }
嗎?
class Cat { public getName(name: string): string; constructor() { ... } getName(name) { return this.name; } }
使用單獨的“聲明然后初始化”的原因之一是,它有助於將公共接口與私有實現分開。
在TypeScript中,可以通過將接口用作聲明並將類用作初始化來實現。 另外,TypeScript具有內置語言內置的模塊系統,因此,不必在類中將某些內容公開和將某些內容私有,您可以使整個類成為私有實現細節,而不是在模塊外部導出和使用:
export interface Cat {
getName(name: string): string;
}
// NOTE: this whole class is an implementation detail and is not exported
class CatImpl implements Cat {
name: string;
constructor() { }
getName(name: string) {
return this.name;
}
}
// this is exported and is publicly available for creating Cats
export function createCat(): Cat {
return new CatImpl();
}
盡管我看不出您為什么要這樣做的充分理由,但這也是不可能的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.