美文网首页
TypeScript中的关键字static

TypeScript中的关键字static

作者: 小棋子js | 来源:发表于2021-10-27 19:12 被阅读0次

TypeScript中的关键字static

ES6中的静态成员在TypeScript也存在,类的静态成员可以使用类名.变量名的形式访问,不需要创建类的实例。

例如,在ts中

class Circle {
    static pi: number = 3.14;
}

上面的Circle包含静态属性pi,可以使用Circle.pi访问,ts会将上面的代码编译成如下js文件

var Circle = /** @class */ (function () {
    function Circle() {
    }
    Circle.pi = 3.14;
    return Circle;
}());

因此可以将上面的ts代码理解为,在Circle对象上增加一个属性pi

静态与非静态同时存在

class Circle {
    pi: number = 12;// 普通变量
    static pi: number = 3.14;// 静态变量
    
    // 普通方法
    calculateArea(radius:number):number { 
        // 此处this是指`Circle`的实例化对象
        return this.pi * Circle.pi * radius;
    }
    // 静态方法
    static calculateArea(radius:number) {
        // 此处this并不是实例化后的this,而是将`Circle`本身视为一个对象,因此`this.pi`的结果是3.14
        return this.pi * radius * radius;
    }
}
console.log(Circle.pi); // 返回 3.14
console.log(Circle.calculateArea(5)); // 返回 78.5

const circle = new Circle();
console.log(circle.pi); // 返回 12
console.log(circle.calculateArea(5));// 返回 300 (12 * 5 * 5)

上面的例子并不会报错,ts虽然允许这种写法,但是并不推荐,容易产生视觉上的混淆。

相关文章

  • TypeScript中的关键字static

    TypeScript中的关键字static ES6中的静态成员在TypeScript也存在,类的静态成员可以使用类...

  • 静态

    多个对象中存在的共同(共同数据),为节省空间而加上static关键字。用了static关键字代码与没用static...

  • Java static关键字

    声明static属性 static是Java中定义的一个关键字,主要是描述全局的概念,所以利用static关键字可...

  • Kotlin学习2

    1.Kotlin中static在kotlin中 没有static关键字,但是有类似java中static的用法例如...

  • 1.3 static 关键字

    static 关键字 《Java编程思想》 中:static方法就是没有this的方法 static 修饰的方法或...

  • static和const

    static static关键字修饰局部变量: 当static关键字修饰局部变量时,只会初始化一次且在程序中只有一...

  • Java:3分钟带你全面了解Static静态关键字

    前言 在Java中,静态 Static关键字使用十分常见 本文全面 & 详细解析静态 Static关键字,希望你们...

  • Java Static 用法

    Java中的Static关键字用的很多,但是总结起来,大概有:Static member、Static Block...

  • 【Java】关键字

    一、 static关键字 static关键字的总结: static关键字 可以再没有创建对象的时候进行调用类的元素...

  • static关键字

    Static关键字概述 static(静态)关键字可以用于修饰变量、方法和代码块。我认为static关键字的主要用...

网友评论

      本文标题:TypeScript中的关键字static

      本文链接:https://www.haomeiwen.com/subject/miupaltx.html