Recibo este error "El tipo 'cadena' no se puede asignar al tipo '"izquierda" | "derecha"'".
Proyecto ejecutándose en Next.js
Aquí está mi definición de tipo
export interface TwoColumnsBlueWhite { title: String; subTitle: String; content: JSX.Element; links: string[]; imageSide: 'left' | 'right' }Esta es mi matriz con mapa.
const data = [ { title: 'some' ... imageSide: 'left' }, { title: 'some' ... imageSide: 'right' }, ]; <Carousel /> {data.map((data) => ( <TwoColumnsBlueWhite title={data.title} subTitle={data.subTitle} content={data.content} links={data.links} imageSide={data.imageSide} /> ))}lo intento
Ponga manualmente en los accesorios 'izquierda' o 'derecha' en los accesorios, luego trabaje, pero necesito este mapa de componentes.
si cambio mi definición en imageSide: 'left' | 'correcto' | cuerda
luego trabaje para, pero me gustaría usar escritura estricta ...
'left' y 'right' no son type o enum type en imageSide: 'left' | 'right' .
Una solución podría ser que primero defina el tipo de enumeración como se muestra a continuación,
export enum ISide { LEFT = 'left', RIGHT = 'right' }Luego, utilícelo cuando sea necesario,
export interface TwoColumnsBlueWhite { title: String; subTitle: String; content: JSX.Element; links: string[]; imageSide: ISide.LEFT | ISide.RIGHT // <--- import ISide and use it here as shown }además,
const data = [ { title: 'some' ... imageSide: ISide.LEFT // <---- check this }, { title: 'some' ... imageSide: ISide.RIGHT // <---- check this }, ];Hago algo similar a la otra respuesta pero la presento como const . Evita la ampliación y tener que establecer qué opciones permite explícitamente.
const OPTIONS = { LEFT = 'left', RIGHT = 'right' } as const; type TImageSlide = typeof OPTIONS[keyof typeof OPTIONS]; export interface TwoColumnsBlueWhite { imageSide: TImageSlide, ...other options }