导入非打字稿 npm 模块的最佳解决方案

best solution for importing non-typescript npm modules

对于使用 traceur 和 SystemJS 的 ES6,这种形式是正确的:

import _ from 'lodash';

对于 Typescript 这还不够 - 我收到错误 error TS2307: Cannot find module 'lodash' 所以,我安装 'lodash.d.ts' :

/// <reference path="lodash/lodash.d.ts" />
import _ from 'lodash';

现在,我从 Typescript 编译器得到:Module '"lodash"' has no default export.

所以,我尝试 'node style':

/// <reference path="lodash/lodash.d.ts" />
let _ = require('lodash');

我在浏览器中得到:Uncaught (in promise) Error: require is not a function

最后:

import _ = require('lodash');

它可以工作,但它 'old form' 不适合 ES6。

对于非 typescript 模块,是否有单一、正确的方法来使用 ES6 样式的 Typescript 导入?

(打字稿 1.6.2)

尝试import * as _ from 'lodash';

如果您将 lodash 导入为 node_module,您可能需要按照 声明 var _: 任何;

如果您想从 'lodash' 导入 * as _,则通过 TypeScript 定义管理器 (tsd) 导入 loadash。在终端中,按照

tsd 安装 lodash --save