Esta
const { foo: IFoo[] } = bar;
y esto
const { foo: Array<IFoo> } = bar;
causará razonablemente un error.
Y esto
const { foo: TFoo } = bar;
simplemente desestructurará la TFoopropiedad.
¿Cómo se pueden especificar tipos para propiedades de objetos desestructurados?
typescript
destructuring
Matraz Estus
fuente
fuente

bartodos modos?Respuestas:
Resulta que es posible especificar el tipo después
:de todo el patrón de desestructuración:Que en realidad no es mejor que el viejo
fuente
{foo}no es un valor. Es lo que generalmente se llama un "patrón de asignación de deconstrucción". Lo que está viendo aquí es en realidad una función especial de TypeScript que permite asociar tipos de patrones con dichos patrones.let x, y, z: stringque aparentemente especifica el tipozsolo para . Actualicé la respuesta.Claramente llego un poco tarde a la fiesta, pero:
Los tipos de propiedades
nameyagedeben inferirse correctamentestringynumberrespectivamente.fuente
Un seguimiento de mi propia pregunta.
No es necesario especificar tipos para las propiedades del objeto porque se infieren a partir de un objeto desestructurado.
Teniendo en cuenta que
barse escribió correctamente,foose deducirá el tipo:Incluso si
barno se escribió correctamente (anyounknown), su tipo se puede afirmar:fuente