在这篇博文中,我们将学习Typecript中类的属性、方法和构造器的静态关键字。
static是一个可以应用于类的属性和方法的关键字。静态成员可以直接使用类名来访问。
静态属性和方法的例子
当你想调用一个类中的任何方法时,我们将使用对象实例来访问它的方法,静态方法将使用类名。
在类中:
- 声明的静态变量和非静态变量
- 宣告的静态方法和非静态方法
- 静态方法和属性使用类名来访问
- 非静态方法和变量使用类的实例,即对象来访问。
在以下情况下会出现编译错误
- 用对象或实例名称调用静态方法
- 使用类名调用非静态方法
class MyClass {
static staticVariable: number = 0;
nonStaticVariable: number = 0;
constructor() {
console.log("constructor");
}
nonStaticMethod() {
console.log("non static method")
}
static staticMethod() {
console.log("Static method")
}
}
MyClass.staticMethod(); // This works fine
let myclass1 = new MyClass();
myclass1.nonStaticMethod() // This works fine
myclass1.staticMethod() // Compilation Error
MyClass.nonStaticMethod() // Compilation Error
静态构造器
当静态关键字应用于构造函数时,编译器给出的编译错误是 "静态修改器不能出现在构造声明中"。在Typescript中,static关键字不应用于类的构造函数。
class ClassDemo {
msg: string;
static constructor(msg: string) {
this.msg = message;
}
hello() {
return "Hello, " + this.msg;
}
}
let classDemo = new ClassDemo("world");
例子
我们可以使用静态方法以不同的方式编写静态关键字。声明静态初始化方法,它将初始化数据
class ClassDemo {
static msg: string;
constructor() {
}
static construct() {
this.msg="static typescript example"
console.log('construct static method')
}
}
console.log(ClassDemo.construct)