如何基于不同的参数创建导出的函数别名以进行类型检查

问题描述 投票:1回答:1

我有这个:

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函数进行类型检查,如果某个键是某个键,则期望第二个参数使用某种类型。

typescript typescript-generics tsc
1个回答
0
投票

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

enter image description here

非常好,谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.