在 Typescript 中聲明一個泛型函數並將箭頭函數賦值給它
我正在嘗試編寫一個範本函數,它是一個箭頭函數,並將它指派給一個 const 變數,
這應該是以下格式 const method: MethodType<T>=<T>(...) => { ... }
但是當我嘗試輸入變數 method 時,它會抱怨。以下是程式碼片段:
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: []
}
};
有什麼方法可以做到這個嗎?也許我沒有跟上語法,但我還沒找到類似的例子。
答案#1
正如 Nitzan Tomer 在評論中暗示的,你應該像下面這樣寫。
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: []
};
};
