Typecript:类的属性、方法和构造器的静态关键字介绍及应用

36 阅读1分钟

在这篇博文中,我们将学习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)