美文网首页
TS基础(十三)类 Class

TS基础(十三)类 Class

作者: Viewwei | 来源:发表于2020-12-27 13:26 被阅读0次

    在TS中,和ES6的JavaScript一样都是使用Class来定义类型的。
    TS中可以使用三种修饰符号,分别是publish private protected
    publish:修饰的是属性和方法,表示在任何地方都可以访问的到,默认所以属性和方法都是public
    private:修饰的属性和方法是私有的,表示不能再声明它的类外访问,不能继承
    protected:修饰的属性和方法是受保护的,可以在子类中访问和继承

    TS 类和JavaScript中类语法区别

    在TS中,可以在constructor中申明参数的修饰符,这种写法和在constructor外定义用指定修改符创建的属性一样

    class Animal {
      // public name: string;
      public constructor(public name) {
        // this.name = name;
      }
    }
    

    类和接口

    在类型,可以实现(implements)接口的方法

    interface Alarm {
        alert(): void;
    }
    
    class Door {
    }
    
    class SecurityDoor extends Door implements Alarm {
        alert() {
            console.log('SecurityDoor alert');
        }
    }
    
    class Car implements Alarm {
        alert() {
            console.log('Car alert');
        }
    }
    

    注意:接口可以继承(extend)类。当类(class)当做一个类型的时候,使用new对象的时候,其实也可以回创建一个相关的接口,接口其实继承的是新创建的接口。实例如下

    class Point {
        x: number;
        y: number;
        constructor(x: number, y: number) {
            this.x = x;
            this.y = y;
        }
    }
    
    interface Point3d extends Point {
        z: number;
    }
    
    let point3d: Point3d = {x: 1, y: 2, z: 3};
    

    相关文章

      网友评论

          本文标题:TS基础(十三)类 Class

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