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 TFoo
propiedad.
¿Cómo se pueden especificar tipos para propiedades de objetos desestructurados?
typescript
destructuring
Matraz Estus
fuente
fuente
bar
todos 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: string
que aparentemente especifica el tipoz
solo para . Actualicé la respuesta.Claramente llego un poco tarde a la fiesta, pero:
Los tipos de propiedades
name
yage
deben inferirse correctamentestring
ynumber
respectivamente.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
bar
se escribió correctamente,foo
se deducirá el tipo:Incluso si
bar
no se escribió correctamente (any
ounknown
), su tipo se puede afirmar:fuente