TypeScript-类兼容性

  • 只会比较 实例成员
class Person {
    public name: string;
}

class Animal {
    public name: string;
}

let p: Person;
let a: Animal;
p = a;
a = p;
  • 只能将 的属性赋值给 的,不可将 的属性赋值给
class Person {
    public name: string;
    public age: number;
}

class Animal {
    public name: string;
}

let p: Person;
let a: Animal;

// 多👉少
a = p;

// 少👉多
p = a;
  • 不会比较类的 构造函数静态成员
class Person {
    public name: string;
    public static age: number;

    constructor(name: string, age: number) {
    }
}

class Animal {
    public name: string;

    constructor(name: string, age: number) {
    }
}

let p: Person;
let a: Animal;

a = p;
p = a;

类的私有属性和受保护属性会响应兼容性

私有属性:

class Person {
    private name: string;
}

class Animal {
    private name: string;
}

let p: Person;
let a: Animal;

p = a;
a = p;

受保护属性:

class Person {
    protected name: string;
}

class Animal {
    protected name: string;
}

let p: Person;
let a: Animal;

p = a;
a = p;
posted @ 2021-12-02 21:24  BNTang  阅读(34)  评论(0编辑  收藏  举报