DefinitelyTyped 的 Lodash
DefinitelyTyped Lodash
我想从 lodash
导入单个函数,同时保留类型。比如这样:
import invokeMap from 'lodash/invokeMap';
但是我好像做不到。编译器说没有模块 lodash/invokeMap
。这是正确的 — DefinitelyTyped 只为 lodash
声明了顶级模块,所以我只能导入整个包。但是我只想导入一个函数。
有没有办法只导入关于 lodash 的类型信息而不导入 lodash 本身?
以下是我的解决方案。我想使用标准的 CommonJS require
函数来导入没有类型信息的必要函数,然后将类型转换到它上面:
declare var require;
var invokeMap: _.invokeMap = require('lodash/invokeMap');
^^^^^^^^^^^
Here I want to cast proper type from DefinitelyTyped,
but how to reach that `invokeMap` typings alone?
您可以使用对象解构从模块中只导入invokeMap函数。
import {invokeMap} from 'lodash';
invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');
使用当前的 typings lodash,这应该可以像您之前尝试的那样工作:
import invokeMap from 'lodash/invokeMap';
只需像这样安装当前版本的环境依赖项:
typings i -SA github:DefinitelyTyped/DefinitelyTyped/lodash/lodash.d.ts#672afd8f7b09d839b61eeb4867753876cf79c8b6
从 TypeScript 2 开始,您可以直接从 npm 安装类型:
npm install @types/lodash
这些类型对每个单独的模块都有声明。
我想从 lodash
导入单个函数,同时保留类型。比如这样:
import invokeMap from 'lodash/invokeMap';
但是我好像做不到。编译器说没有模块 lodash/invokeMap
。这是正确的 — DefinitelyTyped 只为 lodash
声明了顶级模块,所以我只能导入整个包。但是我只想导入一个函数。
有没有办法只导入关于 lodash 的类型信息而不导入 lodash 本身?
以下是我的解决方案。我想使用标准的 CommonJS require
函数来导入没有类型信息的必要函数,然后将类型转换到它上面:
declare var require;
var invokeMap: _.invokeMap = require('lodash/invokeMap');
^^^^^^^^^^^
Here I want to cast proper type from DefinitelyTyped,
but how to reach that `invokeMap` typings alone?
您可以使用对象解构从模块中只导入invokeMap函数。
import {invokeMap} from 'lodash';
invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');
使用当前的 typings lodash,这应该可以像您之前尝试的那样工作:
import invokeMap from 'lodash/invokeMap';
只需像这样安装当前版本的环境依赖项:
typings i -SA github:DefinitelyTyped/DefinitelyTyped/lodash/lodash.d.ts#672afd8f7b09d839b61eeb4867753876cf79c8b6
从 TypeScript 2 开始,您可以直接从 npm 安装类型:
npm install @types/lodash
这些类型对每个单独的模块都有声明。