首页 > 解决方案 > 如何根据不同的参数创建导出的函数别名以进行类型检查

问题描述

我有这个:

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不喜欢它,它说 set 在块中重新声明:

TS2451:无法重新声明块范围变量“set”。

有没有办法做我想做的事?我的目标是对 set 函数进行类型检查,如果某个键是某个键,则期望第二个参数具有某种类型。

标签: typescripttypescript-genericstsc

解决方案


在 TypeScript gitter 频道上,我得到了答案:

在此处输入图像描述

效果很好,谢谢!


推荐阅读