我有以下代码片段来使用求和函数扩展下划线
//underscore.extension.ts
import * as _ from "underscore"
declare module "underscore" {
export interface UnderscoreStatic {
sum(items: number[]): number;
}
}
_.mixin({
sum: items => { return _.reduce<number, number>(items, function (s, x) { return s + x; }, 0); }
});
但是,使用 _.sum() 给我“Property 'sum' does not exist on type 'UnderscoreStatic'。
好吧,谁能告诉我这样做的正确方法?
最佳答案
在进一步查找之后,您还有可以解决您的问题的全局扩充 (https://www.typescriptlang.org/docs/handbook/declaration-merging.html#global-augmentation)
import * as _ from "underscore"
declare global {
interface UnderscoreStatic {
sum(items: number[]): number;
}
}
_.mixin({
sum: items => { return _.reduce<number, number>(items, function (s, x) { return s + x; }, 0); }
});
由于你的 underscore 混合必须至少运行一次,你必须尽早包含/要求这个修改,但你可以在混合后正常使用 underscore 包。
关于typescript - 如何使用 Typescript 2.0 扩展下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39095343/