Quiero convertir una "cadena" JSON que extraigo de una API en mi modelo Typescript, si cambio uno de los accesorios de enumeración a cadena, funciona con bastante facilidad, sin embargo, parece que no puedo asignarlo a una enumeración a pesar de horas de buscando y probando cosas diferentes.
Tengo un modelo que contiene una variedad de tipos como este
export enum SEAT_TYPE { ECONOMY = "ECONOMY", PREMIUM_ECONOMY = "PREMIUM_ECONOMY", BUSINESS = "BUSINESS", } export type Seat = { number: string; type: SEAT_TYPE; status: boolean; }; export class SeatingPlan { seating: Seat[] = []; }Luego saco algo como esto de una API
[{ number: "1A", type: "BUSINESS", status: false, }, { number: "1B", type: "BUSINESS", status: false, }, { number: "1C", type: "BUSINESS", status: false, }]Y estoy usando solo una función de bucle básica para mapear sobre cada elemento y convertirlo en un objeto escrito como este
export function convert(json: Array<Seat>) { return json.map( (seat) => <Seat>{ number: seat.number, type: seat.type as keyof typeof SEAT_TYPE, status: seat.status, }, ); }Pero donde llamo a mi
convert(JSON)
Recibo este error y estoy totalmente perdido en este punto, soy semi-nuevo en TypeScript y siento que me estoy perdiendo algo bastante simple, cualquier ayuda sería muy apreciada.
Argument of type '{ number: string; type: string; status: boolean; }[]' is not assignable to parameter of type 'Seat[]'. Type '{ number: string; type: string; status: boolean; }' is not assignable to type 'Seat'. Types of property 'type' are incompatible. Type 'string' is not assignable to type 'SEAT_TYPE'.Gracias por adelantado.