美文网首页TypeScript
TypeScript进阶(类与接口)

TypeScript进阶(类与接口)

作者: nomooo | 来源:发表于2019-03-31 21:44 被阅读0次

类实现接口
实现(implements)是面向对象中的一个重要概念。一般来讲,一个类只能继承自另一个类,有时候不同类之间可以有一些共有的特性,这时候就可以把特性提取成接口(interfaces),用 implements关键字来实现。这个特性大大提高了面向对象的灵活性。

举例来说,门是一个类,防盗门是门的子类。如果防盗门有一个报警器的功能,我们可以简单的给防盗门添加一个报警方法。这时候如果有另一个类,车,也有报警器的功能,就可以考虑把报警器提取出来,作为一个接口,防盗门和车都去实现它:

interface Alarm {
    alert();
}

class Door {

}

class SecurityDoor extends Door implements Alarm{
    alert() {
        console.log('SecurityDoor alert')
    }
}

class Car implements Alarm {
    alert() {
        console.log('Car alert')
    }
}

一个类可以实现多个接口:

interface Alarm {
    alert();
}

class Door {

}

class SecurityDoor extends Door implements Alarm{
    alert() {
        console.log('SecurityDoor alert')
    }
}

class Car implements Alarm {
    alert() {
        console.log('Car alert')
    }
    lightOn() {
        console.log('Car light on')
    }
    lightOff() {
        console.log('car light off')
    }
    
}

Car 实现了 Alarm 和 Light 接口,既能报警,也能开关车灯。

接口与接口之间是继承关系:
使用 extends 使 LightableAlarm 继承 Alarm。

interface Alarm {
    alert()
}

interface LightableAlaem extends Alarm{
    lightOn();
    lightOff();
}

混合类型
使用接口的方式来定义一个函数需要符合的形状:

interface SearchFunc{
    (source: string, subString: string): boolean;
}
let mySearch: SearchFunc;
mySearch = function (source: string, subString: string) {
    return source.search(subString) !== -1;
}

函数还可以有自己的属性和方法:

interface Counter {
    (start: number): string;
    interval: number;
    reset():void;
}
function getCounter(): Counter {
    let counter = <Counter>function (start: number) { };
    counter.interval = 111;
    counter.reset = function () { };
    return counter;
}

let c = getCounter();
c(10);
c.reset();
c.interval = 5;
console.log(c.interval);//5

相关文章

  • TypeScript进阶(类与接口)

    类实现接口实现(implements)是面向对象中的一个重要概念。一般来讲,一个类只能继承自另一个类,有时候不同类...

  • TypeScript类与接口

    接口(Interfaces)可以用于对「对象的形状(Shape)」进行描述 类实现接口: 实现(implement...

  • TypeScript(四)类与接口

    类实现接口 类类型接口是类遵循的某种约束和规则。 类可以通过关键字 implements 实现接口。 此外通过上文...

  • Typescript接口、类

    一、接口 TypeScript的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法”或“结构性...

  • TypeScript进阶(类)

    类 传统方法中,JavaScript 通过构造函数实现类的概念,通过原型链实现继承。而在 ES6 中,我们终于迎来...

  • TypeScript interface extends cla

    TypeScript 中接口也可以继承类,并且接口可以继承类中的各个成员包括protect和private成员。假...

  • Typescript学习概要

    大致印象 TypeScript 增加了静态类型、类、模块、接口和类型注解. TypeScript 可用于开发大型的...

  • TypeScript(四)类、接口

    认识类的使用 在早期的JavaScript开发中(ES5)我们需要通过函数和原型链来实现类和继承,从ES6开始,引...

  • Kotlin进阶 - 类

    这篇属于Kotlin进阶,讲了与类相关内容,主要涉及到:类定义、类属性和函数、类继承、抽象类和接口、委托与代理、单...

  • Typescript

    安装 Typescript 接口 interface 约束类型结构、Duck Typing 类型推论、联合类型、类...

网友评论

    本文标题:TypeScript进阶(类与接口)

    本文链接:https://www.haomeiwen.com/subject/kluybqtx.html