Typescript 中类的公共访问修饰符的用途是什么?
有什么区别
export class Thing {
public doStuff(){}
}
Run Code Online (Sandbox Code Playgroud)
和
export class Thing {
doStuff(){}
}
Run Code Online (Sandbox Code Playgroud)
看起来标准的 tsc JS 输出是完全一样的......
使用 的两个原因public
,一个是主观/风格,另一个是客观:
它是代码内文档。省略访问修饰符可能会被视为您忘记了它。(这是主观/风格原因。)
如果您想使用 TypeScript 添加到类构造函数的简写初始化功能,您需要public
告诉 TypeScript 执行此操作。
这是#2 的示例:
class Example {
constructor(public name: string) {
// ^^^^^^---------------- This is what triggers the feature
}
}
const e = new Example("Joe");
console.log(e.name); // "Joe"
Run Code Online (Sandbox Code Playgroud)
(在操场上。)
您的示例代码在 TypeScript 中的含义完全相同。当您未在成员定义上放置修饰符public
、private
、 或 时protected
,TypeScript 将选择默认修饰符 、 或public
。
这对于 JavaScript 来说没有意义,因为 TypeScript 转译器将生成完全相同的代码。但是这些修饰符将帮助您封装类成员并使它们:
public
private
protected
同样,生成的 JavaScript 将不包含修饰符。这意味着如果有人获取了您的 JavaScript 代码,即使您将它们定义为private
. 修饰符仅在 TypeScript 中有用,并帮助开发人员不访问某些类成员。
归档时间: |
|
查看次数: |
3154 次 |
最近记录: |