导读
:
类配合实现接口
案例描述:
代码演示:
interface phone { //共有的打电话功能方法,抽离成一个接口
How_to_make_a_phone_call()
}
interface photograph { //共有的照相方法,抽离成一个接口
Camera()
}
class ios implements phone, photograph { //苹果手机的类
How_to_make_a_phone_call() {
console.log("苹果手机打电话的方式");
}
Camera(){
console.log("苹果手机的照相功能");
}
}
class Android implements phone, photograph { //安卓手机的类
How_to_make_a_phone_call() {
console.log("安卓手机打电话的方式");
}
Camera(){
console.log("安卓手机的照相功能");
}
}
let i = new ios()
let A = new Android()
console.log(i.How_to_make_a_phone_call()); //苹果手机打电话的方式
console.log(A.How_to_make_a_phone_call()); //安卓手机打电话的方式
console.log(i.Camera()); //苹果手机的照相功能
console.log(A.Camera()); //安卓手机的照相功能
在 implements
后边可以跟随多个接口,以此来关联多个接口规范。
接口继承接口
:
注意
:区别和上面两套代码对比后的不同。
interface phone { //共有的打电话功能方法,抽离成一个接口
How_to_make_a_phone_call()
}
interface photograph { //共有的照相方法,抽离成一个接口
Camera()
}
interface functionality extends phone,photograph{ //接口继承接口
addfn() //继承接口后还可以添加新的功能
}
class ios implements functionality { 类上面就可以简化,跟随继承后的接口
How_to_make_a_phone_call() {
console.log("苹果手机打电话的方式");
}
Camera(){
console.log("苹果手机的照相功能");
}
addfn(){
console.log("苹果手机的新功能");
}
}
class Android implements functionality { //类上面就可以简化,跟随继承后的接口
How_to_make_a_phone_call() {
console.log("安卓手机打电话的方式");
}
Camera(){
console.log("安卓手机的照相功能");
}
addfn(){
console.log("安卓手机的新功能");
}
}
let i = new ios()
let A = new Android()
console.log(i.How_to_make_a_phone_call()); //苹果手机打电话的方式
console.log(A.How_to_make_a_phone_call()); //安卓手机打电话的方式
console.log(i.Camera()); //苹果手机的照相功能
console.log(A.Camera()); //安卓手机的照相功能
console.log(i.addfn()); //苹果手机的照相功能
console.log(A.addfn()); //安卓手机的照相功能
接口继承类
:
如下案例:
class Point {
x: number;
y: number;
constructor(x: number, y: number) {
this.x = x;
this.y = y;
}
click()
}
interface Point3d extends Point { //接口通过 extends 继承了 类
z: number;
}
//而此时 接口的约束规范里包含了,Point 类类型的校验规则
//所以当我们把这个规则用作于对一个对象的判断约束时,如果不包含 Point 中的属性方法就会报错
let point3d: Point3d = {}; //会报错 类型“{}”缺少类型“Point3d”中的以下属性: z, x, yts(2739
let point3d: Point3d = { //不会报错,满足了 接口校验规范
x: 123,
y: 456,
click() {
console.log("实现");
},
z: 789
};
总结
本章节主要讲述了,在 TypeScript 中,class类与 接口【Interfaces】
,搭配一起使用的时候,会有怎样的表现形式,以及实用的点是什么。这在一定程度上,更加提高的我们的编码灵活性,所以这一知识点也值得我们掌握。