TypeScript学习40

静态成员

静态成员并不关联到类的实例上。他们可以基于类名进行访问。

class MyClass {
    static x: number = 5;
    static myFunc() {
        console.log("myFunc");
    }
}

console.log(MyClass.x);
MyClass.myFunc();


TypeScript学习40

静态成员也可以使用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();


TypeScript学习40

静态成员还可以被继承。

class MyClass {
    private static x: number = 5;
    public static myFunc() {
        console.log(MyClass.x);
    }
}

class DerivedClass extends MyClass {
}

DerivedClass.myFunc();


TypeScript学习40

特殊的静态名

在JavaScript里面,有一些内置的属性,所以这些内置属性的名字,你不能使用。比如name, length, call。

class MyClass {
    static name: string;
}


TypeScript学习40

编译错误提示:


TypeScript学习40

为什么没有static class

静态类只有在那些数据/函数必须包在类里面的语言也有价值,对于TypeScript是没有必要引入静态类的。如果你需要,直接定义函数就可以了。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章