【发布时间】:2015-09-20 14:19:25
【问题描述】:
如何防止 TypeScript 允许将相似但不同的类型分配给已声明的变量?
考虑以下类:
class Person {
private firstName;
private lastName;
public setFirstName(firstName: string): void {
this.firstName = firstName;
}
public setLastName(lastName: string): void {
this.lastName = lastName;
}
public getFullName(): string {
return this.firstName + ' ' + this.lastName;
}
}
class Man extends Person {
public getFullName(): string {
return 'Mr. ' + super.getFullName();
}
}
class Woman extends Person {
public getFullName(): string {
return 'Ms. ' + super.getFullName();
}
}
以下作品:
var jon: Man = new Woman();
var arya: Woman = new Man();
上述工作的原因是Man 和Woman 类型的属性和方法是相似的。如果我添加了Man 或Woman 独有的一些属性或方法,它将按预期抛出错误。
如果有人将具有相似签名的不同 types 分配给为另一个 type 声明的变量,我如何让 TypeScript 抛出错误?
【问题讨论】:
标签: typescript