Estoy intentando crear un tipo para un objeto, que registré usando console.log en javascript. Accedí a mi consola para ver el contenido de este objeto, esto es lo que obtuve
{ SomeAssets: [{id:"SomeArbitaryIdHere"}] description: "SomeDescription here" id: "SomeID" SomeRef: "SomeProdRef" }¿Cómo crearía un tipo de esto? Esto es lo que intenté pero no estoy seguro.
export type = myObjectType { someAssets: Asset; description: string; id: string; someRef: string; } export type = Asset { someArray: string[]; }¿Es esto correcto?
Creo que estás buscando algo como a continuación. someAssets es una matriz de objetos de asset que tienen una propiedad de identificación
export type myObjectType = { someAssets: Asset[]; description: string; id: string; someRef: string; } export type Asset = { id: string; }El código de su pregunta tiene varios errores de sintaxis y no es TypeScript válido. Si aún no lo ha hecho, debería considerar revisar alguna documentación de TypeScript en el Manual de TypeScript; aquí hay un lugar para empezar .
Aquí hay una forma posible de definir algunas interface para representar su objeto:
interface MyObjectType { someAssets: Asset[]; description: string; id: string; someRef: string; } interface Asset { id: string; } Y puede verificar que su objeto se pueda asignar a la interfaz MyObjectType :
const myObject: MyObjectType = { someAssets: [{ id: "SomeArbitaryIdHere" }], description: "SomeDescription here", id: "SomeID", someRef: "SomeProdRef" }; // okay, no compiler error.Tenga en cuenta que tuve que cambiar su objeto para que tuviera el formato correcto; los pares clave-valor de propiedad en los literales de objetos de JavaScript deben estar delimitados por comas; no puedes separarlos con solo una nueva línea.
Además, dado que JavaScript distingue entre mayúsculas y minúsculas , es importante que sus claves de objeto y los nombres de las claves de interfaz correspondientes sean exactamente iguales; Cambié SomeAssets y SomeRef a someAssets y someRef , respectivamente, optando por minúsculas en lugar de mayúsculas y minúsculas . Los nombres de las claves normalmente comienzan con un carácter en minúscula, pero si su caso de uso requiere que las claves sean SomeAssets y SomeRef , entonces debe cambiar las claves en la interfaz para que coincidan.
Puede o puede querer export sus interfaces desde un módulo , o usar un alias de type para un tipo de objeto en lugar de una interface , como parece que podría haber estado intentando hacer; pero si necesita o no hacerlo depende de sus casos de uso. Mi consejo para usted es que se familiarice más con TypeScript del manual y el código existente escrito en TypeScript para que pueda comprender cuáles son sus casos de uso y cómo pueden ser compatibles con el lenguaje.