【TypeScript class中的getter跟setter】

class Person2 {
    constructor(private _name : string){};
    get name() {
        return this._name;
    };
    set name(name: string) {
        this._name = name;
    }
}
const per = new Person2('lyb');
console.log(per.name);
per.name = 'yj';
console.log(per.name);

// 单例模式
class Single {
    private static instance: Single; // 把instance属性挂载到Single类上 ,用来存储实例
    private constructor(public name: string) {}

    /**
     * 创建实例
     * static: 把这个方法挂载到类上,而不是实例上
     */
    static getInstance() {
        if (!this.instance) this.instance = new Single('lyb');

        return this.instance
    }
}

const single1 = Single.getInstance();
const single2 = Single.getInstance();
console.log(single1.name); // lyb
console.log(single2.name); // lyb


// readonly修饰符
class Person3 {
    public readonly name: string; // 只读,不能改
    constructor(name: string){
        this.name = name;
    }
}

const person3 = new Person3('lyb')
person3.name = 'yj' // 报错
console.log(person3.name);


// 抽象类
abstract class Geom {
    width: number;
    // 抽象方法
    abstract getArea(): number;
}
// 继承抽象类后必须实现里边的抽象方法
class Circle extends Geom {
    getArea() {
        return 1;
    }
}

// ==================
// 复习 接口使用
interface Person4 {
    name: string;
}
interface Teacher4 extends Person4 {
    teacherAge: number;
}
interface Student4 extends Person4 {
    age: number;
}
interface Driver {
    name: string;
    age: number;
}

const teacher4 = {
    name: 'lyb',
    teacherAge: 18
}
const student4 = {
    name: 'yj',
    age: 18
}

const getUserInfo = (user: Person4) => {
    console.log(user.name);
}
getUserInfo(teacher4)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值