javascript - Typescript importera node_modules med ECMAscript 6-syntax
Jag installerade biblioteket lodash från npm och nu vill jag importera det till min fil på detta sätt:
import _ from 'lodash';
Men jag får det här felet:
Fel TS1192: Modulen '"lodash"' har ingen standardexport.
Varför får jag detta fel? och hur kan jag importera node_modules som inte är .ts-filer med den nya import-syntaxen i ECMAscript6?
Svar #1
Följande två tillvägagångssätt fungerar för mig:
Använder require:
/**
* Install package via
* $ bower install lodash --save
* Run:
* $ node test.js # after TypeScript compilation
*/
// test.ts file
/// <reference path="typings/lodash/lodash.d.ts" />
import _ = require('./bower_components/lodash/lodash.js');
console.log(_.chunk(['a', 'b', 'c', 'd'], 2));
ES6 importera:
/**
* Install package via
* $ tsd install lodash --save # to download definition file
* $ npm install lodash --save
*
* Run:
* $ node test.js # after TypeScript compilation
*/
// test.ts file
/// <reference path="typings/lodash/lodash.d.ts" />
import * as _ from 'lodash';
console.log(_.chunk(['a', 'b', 'c', 'd'], 2));
// → [['a', 'b'], ['c', 'd']]
Observera: Sökvägskartläggningar baserade på modulupplösning planeras för TypeScript 1.8 (https://github.com/Microsoft/TypeScript/issues/5039)
