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

Yoo*_*rek 8 systemjs typescript1.6 angular

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

import _ from 'lodash';
Run Code Online (Sandbox Code Playgroud)

对于Typescript它是不够的 - 我得到错误error TS2307: Cannot find module 'lodash'所以,我安装'lodash.d.ts':

/// <reference path="lodash/lodash.d.ts" />
import _ from 'lodash';
Run Code Online (Sandbox Code Playgroud)

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

所以,我尝试'节点样式':

/// <reference path="lodash/lodash.d.ts" />
let _ = require('lodash');
Run Code Online (Sandbox Code Playgroud)

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

最后:

import _ = require('lodash');
Run Code Online (Sandbox Code Playgroud)

并且它有效,但它的'旧形式'不适合ES6.

有没有一种正确的方法可以使用ES6样式的Typescript导入非打字稿模块?

(打字稿1.6.2)

bek*_*kos 7

尝试 import * as _ from 'lodash';

  • 我试过:"从*./../node_modules/lodash/dist/lodash'中导入*as _;" 并且"从*lodash'导入*as _;" 仍然会收到无法找到模块的错误. (2认同)