【发布时间】:2020-08-13 20:44:53
【问题描述】:
在 TypeScript 中,静态类方法与在类外部(文件顶部)定义的函数之间有什么实际区别?
我知道与其他类和文件的可见性存在差异。当可见性不是问题时(函数/方法只在一个类中使用),我们什么时候应该使用静态方法而不是在任何类之外定义的函数。
例子:
export class Foo {
constructor(bar: string) {
Foo.shout(bar);
}
private static shout(content: string) {
console.log(string.toUpperCase());
}
}
VS
export class Foo {
constructor(bar: string) {
shout(bar);
}
}
function shout(content: string) {
console.log(string.toUpperCase());
}
【问题讨论】:
-
除了技术差异之外,您还应该考虑架构差异:方法实际上与类有什么关系吗?它属于那里吗?
-
在许多语言中,静态方法只是一个具有时髦名称的全局函数,通常具有更好的访问控制。
-
@axiac - 是的,对于 C++ 和其他几个可能都是如此。这不适用于 JavaScript 或 TypeScript。
标签: typescript