class

class Father{
    // 实例属性 与在 constructor 里写 一样
    address="Beijing";
    // 私有属性(只能这个类里面用 外面 类和实例 都不能用) 暂时还在提案状态
    #money=20000;
    constructor(age){
        this.name="yin";
        this.age=age;
        // 这里隐式 return 实例对象
    }
    // 实例.方法
    sayName(){
        console.log(this.name);
    }
    // 静态方法
    static Fn(){
        console.log("只能Father.Fn() 调用");
    }
}
let f = new Father(18);
console.log(f); // {#money: 20000, address: "Beijing", name: "yin", age: 18}
f.sayName();    // yin

// 继承
class Son extends Father{
    constructor(sonName,age){
        super(age);
    }
}
let s = new Son("son",5);
console.log(s); // {#money: 20000, address: "Beijing", name: "yin", age: 5}

类的访问类型 private私有 protected受保护的 public

class Father {
    name: string="yv";
    public age = 18;    // 类内外部皆可访问 默认不加public也可
    private money = 100;  // 只允许类内部使用
    protected gender = "male";  // 只允许类内部(或子类内部)使用
}
class Son extends Father{
    public say(){
        return this.gender;
    }
}

constructor

class Father{
    constructor(public name:string){}
}
// ↓ 相当于
// class Father {
//     public name: string;
//     constructor(name: string) {
//         this.name = name;
//     }
// }
class Son extends Father {
    public age: number;
    constructor(age: number) {
        super("son");   
        // 子类只要有constructor 就必须有super()
        this.age = age;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。