objeto - typescript herencia de clases
¿Qué significa encerrar una clase entre paréntesis angulares "<>" en TypeScript? (2)
Eso se llama aseveración de tipo o casting.
Estos son los mismos:
let square = <Square>{};
let square = {} as Square;
Ejemplo:
interface Props {
x: number;
y: number;
name: string;
}
let a = {};
a.x = 3; // error: Property ''x'' does not exist on type `{}`
Así que puedes hacer:
let a = {} as Props;
a.x = 3;
O:
let a = <Props> {};
Que hará lo mismo
Soy muy nuevo en TypeScript y me encanta mucho, especialmente lo fácil que es hacer OOP en Javascript. Sin embargo, estoy atascado en tratar de entender la semántica cuando se trata de usar corchetes angulares.
De sus documentos, he visto varios ejemplos como
interface Counter {
(start: number): string;
interval: number;
reset(): void;
}
function getCounter(): Counter {
let counter = <Counter>function (start: number) { };
counter.interval = 123;
counter.reset = function () { };
return counter;
}
y
interface Square extends Shape, PenStroke {
sideLength: number;
}
let square = <Square>{};
Estoy teniendo problemas para entender lo que esto significa exactamente o la manera de pensar / entenderlo.
¿Podría alguien explicármelo por favor?
Esto se llama aserción de tipo .
Puede leer sobre esto en "TypeScript Deep Dive" de Basarat , o en el manual oficial de TypeScript .