导入非打字稿 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
对于使用 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