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