Typescript declarando una función genérica y asignándole una función flecha
Estoy intentando escribir una función plantilla, que es una función flecha, y asignarla a una variable const,
Se supone que esto debe tener la forma const method: MethodType<T>=<T>(...) => { ... }
Pero se queja cuando intento escribir la variable method. A continuación se muestra un fragmento del código:
export type KeyMethod<T> = (data: T) => any;
export interface DiffResult<T> {
additions: T[];
updates: T[];
deletes: T[];
};
export type DiffMethod<T> = (oldState: T[], newState: T[]) => DiffResult<T>;
it complains about this template
vvv
export const diffMethod: DiffMethod<T> = <T>(oldState: T[], newState: T[]) => {
return {
additions: [],
updates: [],
deletes: []
}
};
¿Hay alguna manera de hacer esto? Tal vez estoy fallando en seguir la sintaxis, pero no he encontrado un ejemplo similar para eso.
Respuesta #1
Como se indica en un comentario de Nitzan Tomer, deberías escribir como lo siguiente.
export interface DiffResult<T> {
additions: T[];
updates: T[];
deletes: T[];
}
export type DiffMethod = <T>(oldState: T[], newState: T[]) => DiffResult<T>;
export const diffMethod: DiffMethod = <T>(oldState: T[], newState: T[]) => {
return {
additions: [],
updates: [],
deletes: []
};
};
