interface定义
interface是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来,用来封装一定功能的集合。它好比一个模板,在其中定义了对象必须实现的成员,通过类或结构来实现它。接口不能直接实例化,即ICount ic=new iCount()是错的。接口不能包含成员的任何代码,只定义成员本身。接口成员的具体代码由实现接口的类提供。接口使用interface关键字进行声明。
官方Demo
interface IPerson {firstName:string,lastName:string,sayHi: ()=>string}var customer:IPerson = {firstName:"Tom",lastName:"Hanks",sayHi: ():string =>{return "Hi there"}}console.log("Customer 对象 ")console.log(customer.firstName)console.log(customer.lastName)console.log(customer.sayHi())var employee:IPerson = {firstName:"Jim",lastName:"Blakes",sayHi: ():string =>{return "Hello!!!"}}
接口不能转换为 JavaScript。 它只是 TypeScript 的一部分。
编译以上代码,得到以下 JavaScript 代码:
var customer = {firstName: "Tom",lastName: "Hanks",sayHi: function () { return "Hi there"; }};console.log("Customer 对象 ");console.log(customer.firstName);console.log(customer.lastName);console.log(customer.sayHi());var employee = {firstName: "Jim",lastName: "Blakes",sayHi: function () { return "Hello!!!"; }};
总结:
只能实现接口和接口的继承
没有class 继承接口去实现
不能被重写
在前端的作用:
规范数据类型,减少数据类型转换错误
抽象类型,对数据进行封装
