Usa una propiedad de una interfaz de Typescript en otra interfaz
Supongamos que tengo una interfaz de Typescript como la siguiente
export interface IMyObj {
id: string;
type: 'AA' | 'AZ' | 'XY';
...
}
Ahora necesito otra interfaz que también tenga ese campo type
export interface IMyOtherObj {
...
type: 'AA' | 'AZ' | 'XY';
...
}
Como puedes ver, he duplicado los valores de type. Entonces, mi pregunta es, ¿cómo puedo reutilizar IMyObj.type en mi interfaz IMyOtherObj? Intenté esto
export interface IMyOtherObj {
...
type: IMyObj.type; // -> error
...
}
Creo que estoy cerca, pero hasta ahora no he tenido suerte, ¿alguna sugerencia?
Respuesta #1
Tu problema es que el sistema de tipos de TS no tiene acceso a la propiedad ., sino tipo de propiedad indexada, cambia una cosa en tu definición de tipo:
type: IMyObj['type']
Respuesta #2
Define una enumeración para su propiedad type, como
enum MyEnum {
Aa = "AA",
Az = "AZ",
Xy = "XY"
}
y úsalo así;
export interface IMyObj {
id: string;
type: MyEnum;
}
