uso interfaces importar herencia crear clases clase typescript

typescript - importar - Mecanografiado: ¿Cómo defino interfaces para objetos anidados?



interfaces en typescript (1)

Supongamos que tengo una carga JSON que se analiza en algo como esto:

{ name: "test", items: { "a": { id: 1, size: 10 }, "b": { id: 2, size: 34 } } }

¿Cómo configuraría la definición de la interfaz de ejemplo para modelar que el valor de la propiedad items es un objeto cuyas claves son cadenas y cuyos valores están definidos por la interfaz Item:

export interface Example { name: string; items: ???; } export interface Item { id: number; size: number; }


El mecanografiado le permite agregar un tipo para las claves de objeto utilizando la sintaxis [key: string] .

Como se indica en la documentación, estos se denominan tipos indexables :

Los tipos indexables tienen una firma de índice que describe los tipos que podemos usar para indexar en el objeto, junto con los tipos de retorno correspondientes al indexar.

En su caso, usaría lo siguiente:

export interface Item { id: number; size: number; } export interface Example { name: string; items: { [key: string]: Item }; }

Como referencia, aquí hay un enlace a un ejemplo en vivo .