我的团队正在评估将一些文件从 JavaScript 切换到 TypeScript,并且我们在代码中广泛使用了一些自定义 mixin 方法。从一些基本测试来看,虽然我们可以使用 _.mixin 按照规范创建 mixin,但我们无法在不出现编译错误的情况下引用它们。当然,我们可以将这些引用放在定义文件中,但我通常不希望对其进行修改。
有什么办法可以做到我们正在寻找的东西,还是我们运气不好?
请参阅 TypeScript 文档扩展内置类型 http://definitelytyped.org/guides/best-practices.html#extending-built-in-types,我认为这也适用于这里。_
定义为var _: _.LoDashStatic
, and var
目前不可扩展。
我发现公开扩展的最好方法是通过lodash-mixins.ts
定义新的脚本LoDashMixins
接口(扩展LoDashStatic
),应用 mixin,并导出_
投射到自定义界面。此示例定义了一个 mixin,但其想法是将所有 mixin 添加到一个脚本中以便于导入。
import * as _ from 'lodash';
import xdiff from './xdiff';
interface LoDashMixins extends _.LoDashStatic {
xdiff<T>(array:T[], values:T[]): T[];
}
_.mixin({xdiff: xdiff});
export default _ as LoDashMixins;
当你想使用 mixin 时,导入'./lodash-mixins'
代替'lodash'
。现在,您可以在编译时查看所有内置函数以及 mixin。
import _ from './lodash-mixins';
_.map([]); // built-in function still compiles
_.xdiff([], []); // mixin function compiles too
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)