javascript - Declarar una variable en un tipo que incluya Genérico
Estoy intentando declarar una variable y definir su tipo:
const state: State<A, B, C> = { ... };
Estoy recibiendo el siguiente error: No se puede encontrar el nombre 'A'. Parece que TS piensa que estoy usando un tipo A que ya está definido, pero lo que quiero es algo así:
const state<A, B, C>: State<A, B, C> = { ... };
¿Cuál es la sintaxis correcta?
Respuesta #1
Puedes crear una función de fábrica, como:
interface State<A, B, C> {
a: A,
b: B,
c: C
};
function createState<A, B, C>(obj: State<A, B, C>) {
return obj;
}
const state = createState({
a: "abc",
b: 2,
c: true
});
Otra opción es reemplazar la interfaz por una clase:
class State<A, B, C> {
constructor(
readonly a: A,
readonly b: B,
readonly c: C
) {}
}
const state = new State("abc", 2, true);
