How do I prevent TypeScript from allowing assigning similar but different types to a declared variable?
Consider following classes:
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();
}
}
Following works:
var jon: Man = new Woman();
var arya: Woman = new Man();
The reason for above to work is that properties and methods of both Man
and Woman
types are similar. If I added some property or method unique to either Man
or Woman
, it'll throw an error as expected.
How do I get TypeScript to throw errors if someone assign different types with similar signatures to variables declared for another type?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…