理解打字稿类中的“公共”/“私有”

2024-02-13

在下面的脚本代码中,无论名称是“public”还是 “private”,生成的java脚本代码是相同的。

所以我的问题是,如何决定何时构造函数参数应该是 公立还是私立?

// typescript code
class Animal {  
constructor( public name: string) {     
}

}

// generated JS code
var Animal = (function () {
function Animal(name) {
    this.name = name;
}
return Animal;
}());

正如您所发现的,公共、私有、受保护的访问修饰符实际上并不影响最终输出的代码。他们什么do影响是编译时的类型检查。

他们实际上做了什么?

正如他们的名字所暗示的那样,public and private修饰符限制可以访问类成员的内容。他们也是氏族中的第三个修饰符,protected.

The private修饰符只允许访问类成员(变量或方法)在该班级内.

The 受保护的修饰符允许一切private修饰符确实如此,并且还允许扩展该类的其他类使用它。

最后,public修饰符使得任何可以访问该类的东西也可以访问公共类属性。

如需更深入的解释和示例,请查看官方 TypeScript 手册解释 https://www.typescriptlang.org/docs/handbook/classes.html#public-private-and-protected-modifiers.

如果编译结果都一样,我为什么要使用修饰符?!

使用修饰符将使编译器能够确保您的代码没有使用不应该使用的东西。这与首先​​使用类型背后的原因相同,它使得犯本来不应该犯的错误变得更加困难!作为额外的好处,如果您的文本编辑器支持 TypeScript,它在显示变量和方法的自动完成值时也会使用访问修饰符。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

理解打字稿类中的“公共”/“私有” 的相关文章

随机推荐