静态成员并不关联到类的实例上。他们可以基于类名进行访问。
class MyClass {
static x: number = 5;
static myFunc() {
console.log("myFunc");
}
}
console.log(MyClass.x);
MyClass.myFunc();
静态成员也可以使用public, protected, private。
class MyClass {
private static x: number = 5;
private static myFunc() {
console.log(MyClass.x);
}
myFunc2() {
MyClass.myFunc();
}
}
const m: MyClass = new MyClass();
m.myFunc2();
静态成员还可以被继承。
class MyClass {
private static x: number = 5;
public static myFunc() {
console.log(MyClass.x);
}
}
class DerivedClass extends MyClass {
}
DerivedClass.myFunc();
在JavaScript里面,有一些内置的属性,所以这些内置属性的名字,你不能使用。比如name, length, call。
class MyClass {
static name: string;
}
编译错误提示:
静态类只有在那些数据/函数必须包在类里面的语言也有价值,对于TypeScript是没有必要引入静态类的。如果你需要,直接定义函数就可以了。
留言与评论(共有 0 条评论) “” |