接口:用来建立某种代码约定,使得其他开发者在调用某个方法或创建新的类时必须遵循接口所定义的代码约定
 
在js里面没有接口这个概念,在ts里面通过两个关键字来支撑接口这个特性
 
interface
interface IPerson {
name: string;
age: number;
}

在接口里面,和类一样,我们可以声明一些属性

class Person {
constructor(public config: IPerson) {}
}

我们再声明一个类,这个类里面接收一个IPerson类型的参数,这时候,我们看到了接口的第一个用法,它作为一个方法参数的类型声明。这个时候去调用的时候,它会去检查,是不是接口声明的那些树形,比如

var p1 = new Person({
name: 'zina',
age: 18
})
只有这样才不报错,如果多传一个属性或少传一个属性都会报错。这是接口的第一个用法。当你的接口用作方法的参数的类型声明时,在调用的时候,ts会去检查你传入的这个参数,是否满足接口所声明的所有属性
implements

interface Animal {
eat();
}
class Sheep implements Animal{ }
这里我们声明了一个Animal的接口,它有个方法叫做eat。再声明了一个类,这里有个关键字implements。它是声明Sheep这个类实现Animal这个接口。
当一个类实现一个接口的时候,它必须实现这个接口里声明的方法
interface Animal {
eat();
} class Sheep implements Animal{
eat() {
console.log('im eat grass')
}
} class Tiger implements Animal{
eat() {
console.log('i eat meat')
}
}

最新文章

  1. IIS7.0发布Web服务-0001
  2. java.lang.ClassNotFoundException: org.junit.Assume$AssumptionViolatedException
  3. 为什么C++类定义中,数据成员不能被指定为自身类型,但可以是指向自身类型的指针或引用?为什么在类体内可以定义将静态成员声明为其所属类的类型呢 ?
  4. C++ Primer 第三章 标准库类型vector+迭代器iterator 运算
  5. I.MX6 ov5640 camera
  6. Codeforces Beta Round #12 (Div 2 Only) D. Ball sort/map
  7. mysql 服务不见了的解决办法
  8. Educational Codeforces Round 22.B 暴力
  9. 构建自己的Tomcat镜像
  10. ue4粒子实现流血效果
  11. Spring cloud 之Ribbon(二)负载均衡原理
  12. tmux 没有默认配置文件。
  13. wp rest api 授权方法步骤(使用JWT Authentication插件)
  14. 类Unix上5个最佳开源备份工具 Bacula/Amanda/Backupninja/Backuppc/UrBackup
  15. dapper支持操作函数和事物
  16. 基于Spring MVC的web应用随应用启动而加载
  17. 数据库-mysql储存过程
  18. 打造基于jQuery的智能选择输入框
  19. js生成guid(唯一标识码)
  20. springboot成神之——RestTemplate访问Rest

热门文章

  1. window系统修改时区IIS需要重启
  2. springboot获取上下文ApplicationContext
  3. JVM——java内存模型和线程
  4. CSP前的板子们
  5. python实现查找最长公共子序列
  6. const指针和指向常量的指针
  7. GZOI/GXOI2019
  8. Spring主要用到两种设计模式
  9. Linux用户管理的基本概念
  10. Window 服务器安装MongoDB 设置外网可访问