出于理智的原因,我需要一个具有功能作为对象中键的对象,例如:
function a() {}
function b() {}
const obj = {
[a]: b
}
这样做的原因是我想将函数a
的值映射到函数b
,并能够记住并再次删除映射。
现在,我想知道如何在TypeScript中为此编写类型。如果我愿意
type MapFunctions = { [key: Function]: Function };
我会收到错误
An index signature parameter type must be 'string' or 'number'.ts(1023)
但是我要如何为此写一个类型?
答案 0 :(得分:1)
object
不能将函数引用作为键,但是可以使用Map
来将函数引用作为键
function a() {}
function b() {}
const map = new Map<() => void, () => void>();
map.set(a, b);
map.get(a)();