如何在 TypeScript 中使用 lodash.mixin

2023-12-28

我的团队正在评估将一些文件从 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(使用前将#替换为@)

如何在 TypeScript 中使用 lodash.mixin 的相关文章

随机推荐