gpt4 book ai didi

typescript - 在 TypeScript 中手动和自动分配构造函数参数

转载 作者:搜寻专家 更新时间:2023-10-30 21:30:26 24 4
gpt4 key购买 nike

到目前为止,以下代码是我一直用来在 TypeScript 中定义构造函数的代码。

export class DashboardComponent {
private heroService: HeroService;
constructor(heroService: HeroService){
this.heroService = heroService
}
}

但最近当我检查Angular 2 document ,我看到语法更短,看起来像

export class DashboardComponent {
constructor(private heroService: HeroService){}
}

和编译后的JavaScript一样

var DashboardComponent = (function () {
function DashboardComponent(heroService) {
this.heroService = heroService;
}
return DashboardComponent;
}());

因为在 TypeScriptdocs只显示第一种类型,所以我只想确保两种类型相同,并且我对这两种类型的操作都正确。

感谢如果有人可以帮我确认一下?

最佳答案

是的,这两种写法实际上是一样的。您可以在官方语言规范 here 上看到第二个与 public 一起使用在 GitHub 上。

所以,

class BankAccount {  
constructor(public balance: number) {}
}

相同
class BankAccount {
public balance: number
constructor(balance: number) {
this.balance = balance;
}
}

此外,关于生成的 JavaScript 代码的说明:使用 privatepublic 不会更改输出。因为在纯 JavaScript 中,没有“私有(private)”成员这样的东西:您无法阻止对对象成员的访问。publicprivate 的唯一作用是告诉 TypeScript 其他代码应该访问什么,不应该访问什么。

关于typescript - 在 TypeScript 中手动和自动分配构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40125393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com