将索引签名添加到 .d.ts 中的函数
Add index signature to a function in .d.ts
我想覆盖 npm 库类型以将索引签名添加到函数。假设该函数没有做任何引人注目的事情:
export function foo(input) {
return Number(input);
}
它在 .d.ts
文件中输入:
export default function foo(input: string): number | null;
我想给这个函数添加属性,比如:
foo['something'] = 2;
如何更改 .d.ts
文件,这样我就可以使用 any 属性 而不仅仅是 something
?
它应该有 [index: string]: number;
的索引签名。我找到了如何做的答案,但只针对一个或几个已知属性,但我需要将任何字符串作为键。
我通过在 TSPlayground 上使用 Object.assign
将函数与对象(使用索引签名键入)合并找到了答案,它可以为我生成 .d.ts
:
declare const foo: ((input: string) => number | null) & {
[key: string]: number;
};
export default parse;
我想覆盖 npm 库类型以将索引签名添加到函数。假设该函数没有做任何引人注目的事情:
export function foo(input) {
return Number(input);
}
它在 .d.ts
文件中输入:
export default function foo(input: string): number | null;
我想给这个函数添加属性,比如:
foo['something'] = 2;
如何更改 .d.ts
文件,这样我就可以使用 any 属性 而不仅仅是 something
?
它应该有 [index: string]: number;
的索引签名。我找到了如何做的答案,但只针对一个或几个已知属性,但我需要将任何字符串作为键。
我通过在 TSPlayground 上使用 Object.assign
将函数与对象(使用索引签名键入)合并找到了答案,它可以为我生成 .d.ts
:
declare const foo: ((input: string) => number | null) & {
[key: string]: number;
};
export default parse;