TypeScript类的定义

TypeScript类的定义,虽然JavaScript语言支持了类,但其本质上仍是函数。TypeScript语言对JavaScript中的类进行了扩展,为其添加了类型支持,如实现接口、泛型类等。

定义一个类需要使用class关键字。类似于函数定义,类的定义也有以下两种方式:

  • 类声明
  • 类表达式

类声明

类声明能够创建一个类,类声明的语法如下所示:

class ClassName {
    // ...
}

在该语法中,class是关键字;ClassName表示类的名字。在类声明中的类名是必选的。按照惯例,类名的首字母应该大写。

class Circle {
   radius: number;
}

const c = new Circle();

此例中,我们声明了一个Circle类,它包含一个number类型的radius属性。使用new关键字能够创建类的实例。

与函数声明不同的是,类声明不会被提升,因此必须先声明后使用。示例如下:

const c0 = new Circle(); // 错误

class Circle {
   radius: number;
}

const c1 = new Circle(); // 正确

在使用类声明时,不允许声明同名的类,否则将产生错误。示例如下:

// 错误!重复的类声明

class Circle {
   radius: number;
}

class Circle {
   radius: number;
}

类表达式

类表达式是另一种定义类的方式,它的语法如下所示:

const Name = class ClassName {
    // ...
};

在该语法中,class是关键字;Name表示引用了该类的变量名;ClassName表示类的名字。在类表达式中,类名ClassName是可选的。

下例中使用类表达式定义了一个匿名类,同时使用常量Circle引用了该匿名类:

const Circle = class {
   radius: number;
};

const a = new Circle();

如果在类表达式中定义了类名,则该类名只能够在类内部使用,在类外不允许引用该类名。示例如下:

const A = class B {
   name = B.name;
};

const b = new B(); // 错误

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!