TypeScript接口

类似于对象类型字面量,接口类型也能够表示任意的对象类型。不同的是,接口类型能够给对象类型命名以及定义类型参数。接口类型无法表示原始类型,如boolean类型等。

接口声明只存在于编译阶段,在编译后生成的JavaScript代码中不包含任何接口代码。

接口声明

通过接口声明能够定义一个接口类型。接口声明的基础语法如下所示:

interface InterfaceName
{
    TypeMember;
    TypeMember;
    ...
}

在该语法中,interface是关键字,InterfaceName表示接口名,它必须是合法的标识符,TypeMember表示接口的类型成员,所有类型成员都置于一对大括号“{}”之内。

按照惯例,接口名的首字母需要大写。因为接口定义了一种类型,而类型名的首字母通常需要大写。示例如下:

interface Shape { }

在接口名之后,由一对大括号“{}”包围起来的是接口类型中的类型成员。从语法的角度来看,接口声明就是在对象类型字面量之前添加了interface关键字和接口名。例如,类型成员间的分隔符和类型成员的尾后分号、逗号。

同样地,接口类型的类型成员也分为以下五类:

  • 属性签名
  • 调用签名
  • 构造签名
  • 方法签名
  • 索引签名

属性签名

属性签名声明了对象类型中属性成员的名称和类型。属性签名的语法如下所示:

PropertyName: Type;

在该语法中,PropertyName表示对象属性名,可以为标识符、字符串、数字和可计算属性名;Type表示该属性的类型。示例如下:

interface Point {
   x: number;
   y: number;
}

调用签名

调用签名定义了该对象类型表示的函数在调用时的类型参数、参数列表以及返回值类型。调用签名的语法如下所示:

(ParameterList): Type

在该语法中,ParameterList表示函数形式参数列表类型;Type表示函数返回值类型,两者都是可选的。示例如下:

interface ErrorConstructor {
   (message?: string): Error;
}

构造签名

构造签名定义了该对象类型表示的构造函数在使用new运算符调用时的参数列表以及返回值类型。构造签名的语法如下所示:

new (ParameterList): Type

在该语法中,new是运算符关键字;ParameterList表示构造函数形式参数列表类型;Type表示构造函数返回值类型,两者都是可选的。示例如下:

interface ErrorConstructor {
   new (message?: string): Error;
}

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!