interface定义

interface是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来,用来封装一定功能的集合。它好比一个模板,在其中定义了对象必须实现的成员,通过类或结构来实现它。接口不能直接实例化,即ICount ic=new iCount()是错的。接口不能包含成员的任何代码,只定义成员本身。接口成员的具体代码由实现接口的类提供。接口使用interface关键字进行声明。

官方Demo

  1. interface IPerson {
  2. firstName:string,
  3. lastName:string,
  4. sayHi: ()=>string
  5. }
  6. var customer:IPerson = {
  7. firstName:"Tom",
  8. lastName:"Hanks",
  9. sayHi: ():string =>{return "Hi there"}
  10. }
  11. console.log("Customer 对象 ")
  12. console.log(customer.firstName)
  13. console.log(customer.lastName)
  14. console.log(customer.sayHi())
  15. var employee:IPerson = {
  16. firstName:"Jim",
  17. lastName:"Blakes",
  18. sayHi: ():string =>{return "Hello!!!"}
  19. }

接口不能转换为 JavaScript。 它只是 TypeScript 的一部分。
编译以上代码,得到以下 JavaScript 代码:

  1. var customer = {
  2. firstName: "Tom",
  3. lastName: "Hanks",
  4. sayHi: function () { return "Hi there"; }
  5. };
  6. console.log("Customer 对象 ");
  7. console.log(customer.firstName);
  8. console.log(customer.lastName);
  9. console.log(customer.sayHi());
  10. var employee = {
  11. firstName: "Jim",
  12. lastName: "Blakes",
  13. sayHi: function () { return "Hello!!!"; }
  14. };


总结:

只能实现接口和接口的继承
没有class 继承接口去实现
不能被重写

在前端的作用:
规范数据类型,减少数据类型转换错误
抽象类型,对数据进行封装