Error TS2322: "could be instantiated with a different subtype of constraint 'object'" — ¿cómo solucionarlo?
¡Hola! Soy nuevo en TypeScript y me encontré con un error extraño al usar genéricos.
Tengo una función simple que debe aceptar un objeto y devolver sus claves. Quiero que la función funcione con cualquier objeto, pero que mantenga el tipo de retorno como un array de claves de ese objeto.
Aquí está mi código:
```typescript
function getKeys(obj: T): (keyof T)[] {
return Object.keys(obj) as (keyof T)[];
}
function processObject(data: T) {
// Aquí quiero pasar data a otra función
const handler = (input: U): void => {
const keys = getKeys(input);
console.log(keys);
};
handler(data); // ERROR aquí!
}
```
TypeScript muestra el error:
`Argument of type 'T' is not assignable to parameter of type 'U'.
'U' could be instantiated with a different subtype of constraint 'object'.`
No entiendo por qué ocurre esto. Tanto T como U están restringidos al tipo `object`. ¿Por qué TypeScript...
No answers yet.
Inicia sesión para dejar una respuesta