TypeScript 接口
接口(interface)指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容
TypeScript 可以使用 interface
关键字声明接口
TypeScript 中,接口可以作为一个类型批注
现在,我们通过一个接口来扩展上一章节中的范例
首先,创建文件 interface.ts
并复制以下内容
interface Shape { name: string; width: number; height: number; color?: string; } function area(shape : Shape) { var area = shape.width * shape.height; return "I'm " + shape.name + " with area " + area + " cm squared"; } document.write( area( {name: "rectangle", width: 30, height: 15})); document.write( area( {name: "square", width: 30, height: 30, color: "blue"} )); document.write( area( {width: 30, height: 15} ) );
其次修改 index.html
中的 type.ts
或 hello.ts
为 interface.js
最后编译以上代码 tsc interface.ts
,发生错误,信息如下
$ tsc interface.ts interface.ts(15,23): error TS2345: Argument of type '{ width: number; height: number; }' is not assignable to parameter of type 'Shape'. Property 'name' is missing in type '{ width: number; height: number; }'.
这是因为下面的语句缺失 name 参数
document.write( area( {width: 30, height: 15} ) );
删除该语句,重新编译,就不会出错了
刷新我们的浏览器,显示如下