javascript - Typescript uvoz node_modules s ECMAscript 6 sintaksom


Instalirao sam biblioteku lodash iz npm-a i sada je želim uvesti u svoj fajl ovako:

import _ from 'lodash';

Ali dobivam ovu pogrešku:

Pogreška TS1192: Modul '"lodash"' nema zadani izvoz.

Zašto dobivam ovu pogrešku? I kako mogu uvesti node_modules koje nisu .ts datoteke s novom sintaksom uvoza ECMAscript6?

Odgovor #1

Sljedeća dva pristupa funkcioniraju za mene:

Korištenje 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 import:

/**
 * 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']]

Napomena: Mapiranja putanja za rješenje modula planirana su za TypeScript 1.8 (https://github.com/Microsoft/TypeScript/issues/5039)

Povezani članci