类似于对象类型字面量,接口类型也能够表示任意的对象类型。不同的是,接口类型能够给对象类型命名以及定义类型参数。接口类型无法表示原始类型,如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;
}
酷客网相关文章:
评论前必须登录!
注册