Tengo una clase llamada Snackbar que tiene propiedades y métodos como este:
export class SnackbarComponent { optionA: number; option2: string; method1(){} } Me gustaría agregar las properties como claves en las opciones. Estoy usando [I in SnackbarComponent]: SnackbarComponent[I]; pero me esta dando los siguientes errores:
- Un nombre de propiedad calculado en un tipo literal debe hacer referencia a una expresión cuyo tipo es un tipo literal o un tipo de 'símbolo único'.ts(1170)
- Un nombre de propiedad calculado debe ser del tipo 'cadena', 'número', 'símbolo' o 'cualquiera'.ts(2464)
- No se puede encontrar el nombre 'I'.ts(2304)
- El tipo 'cualquiera' no se puede utilizar como tipo de índice.ts(2538)
export class SnackbarService { show(message: string, options?: { randomString: string; [I in SnackbarComponent]: SnackbarComponent[I]; }): Snackbar { // Create instance of SnackbarComponent // Set the properties on the SnackbarComponent } }Solo te falta una keyof de
export class SnackbarService { show(message: string, options?: { [K in keyof SnackbarComponent]: SnackbarComponent[K] })