Lassen Sie uns sagen, ich habe eine Schnittstelle:Typprüfung und Generika
interface Comparable<T> {
equals(other:T):boolean
}
die dann in mehreren Klassen Ich bin Umsetzung:
class Rectangle implements Comparable<Rectangle> {
equals(other:Rectangle):boolean {
// logic
return true;
}
}
class Circle implements Comparable<Circle> {
equals(other:Circle):boolean {
// logic
return true;
}
}
Warum Typoskript zum Vergleichen Rechteck und Kreis ermöglicht?
let circle:Circle = new Circle();
let rectangle:Rectangle = new Rectangle();
console.log(circle.equals(rectangle));
Sollte es mich nicht warnen, dass ich nicht kompatibel Typ Kreises vorgesehen gleich Methode?