use*_*356 5 package declare typescript angular
我正在创建一个用于不同项目的打字稿库。我想要的是仅向外部发布类函数的一个子集,并在我的库内部使用其他函数。
在示例中:
/* Person.ts */
export class Person{
getName(){
.....
return name;
}
getInfos(){
}
}
/* People.ts */
export class People{
...
setName(){
let p = new Person();
...
let n = p.getName();
....
}
}
Run Code Online (Sandbox Code Playgroud)
我希望我的库公开 Person getInfos() 和 People setName(),但我希望 Person getName 只能在内部访问。也许我必须创建一个 Person.d.ts ,只向外部用户公开一种方法,但我不明白如何做。
谢谢
您必须区分编译时封装和运行时封装。如果您只需要编译时封装,则可以使用@tricheriche 建议的方法并声明getName为私有或使用@yurzui 的更高级方法。
如果您想要运行时封装,则必须使用不同的方法。如果导出一个类,它会导出其所有方法,就像 JavaScript 中的所有方法都是公共的一样。要隐藏某些功能,您可以在模块中创建一个函数getName但不要公开它。您将能够使用它,但在外部无法使用它:
function getName() {... return name;}
export class Person{
getInfos(){
return getName.call(this);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3563 次 |
| 最近记录: |