如何基于不同的参数创建用于类型检查的导出函数别名
How to create exported function aliases for type checking based on different arguments
我有这个:
export const set = (k: LocalStorageKeys.CP_EMAIL, v: string) => void;
export const set = (k: LocalStorageKeys.CP_USER_ID, v: string) => void;
export const set = (k: LocalStorageKeys.CP_USER, v: User) => void;
export const set = (k: LocalStorageKeys, v: any) : void => {
return localStorage.setItem(k, JSON.stringify(v));
};
但是tsc
不喜欢它,它说集合在块中重新声明:
TS2451: Cannot redeclare block-scoped variable 'set'.
有没有办法做我想做的事?我的目标是对 set 函数进行类型检查,如果某个键是某个键,则期望第二个参数是某个类型。
在 TypeScript gitter 频道上,我得到了答案:
效果很好,谢谢!
我有这个:
export const set = (k: LocalStorageKeys.CP_EMAIL, v: string) => void;
export const set = (k: LocalStorageKeys.CP_USER_ID, v: string) => void;
export const set = (k: LocalStorageKeys.CP_USER, v: User) => void;
export const set = (k: LocalStorageKeys, v: any) : void => {
return localStorage.setItem(k, JSON.stringify(v));
};
但是tsc
不喜欢它,它说集合在块中重新声明:
TS2451: Cannot redeclare block-scoped variable 'set'.
有没有办法做我想做的事?我的目标是对 set 函数进行类型检查,如果某个键是某个键,则期望第二个参数是某个类型。
在 TypeScript gitter 频道上,我得到了答案:
效果很好,谢谢!