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(); // 错误
酷客网相关文章:
评论前必须登录!
注册