TypeScript到目前为止,以下代码是我一直用来定义构造函数的代码。
export class DashboardComponent {
private heroService: HeroService;
constructor(heroService: HeroService){
this.heroService = heroService
}
}
Run Code Online (Sandbox Code Playgroud)
但最近当我检查Angular 2 文档时,我看到语法更短,看起来像
export class DashboardComponent {
constructor(private heroService: HeroService){}
}
Run Code Online (Sandbox Code Playgroud)
编译后的 JavaScript 是一样的
var DashboardComponent = (function () {
function DashboardComponent(heroService) {
this.heroService = heroService;
}
return DashboardComponent;
}());
Run Code Online (Sandbox Code Playgroud)
因为TypeScript 文档中仅显示第一种类型,所以我只想确保两个类型相同,并且我对这两种类型的处理都正确。
感谢有人可以帮我确认一下吗?
是的,这两种写法实际上是相同的。您可以在 GitHub上public的官方语言规范中看到使用的第二个。
所以,
class BankAccount {
constructor(public balance: number) {}
}
Run Code Online (Sandbox Code Playgroud)
是相同的
class BankAccount {
public balance: number
constructor(balance: number) {
this.balance = balance;
}
}
Run Code Online (Sandbox Code Playgroud)
另外,关于生成的 JavaScript 代码的注释:使用private或public不会更改输出。因为在纯 JavaScript 中,不存在“私有”成员这样的东西:您无法阻止对对象成员的访问。唯一的作用public和private作用是告诉 TypeScript 哪些内容应该被其他代码访问,哪些内容不应该被其他代码访问。
| 归档时间: |
|
| 查看次数: |
1626 次 |
| 最近记录: |