Ошибка TS с Lodash-es с использованием модулей ionic2, Typescript, RollupJs, es2015

#javascript #typescript #ecmascript-6 #ionic2 #rollupjs

#javascript #typescript #ecmascript-6 #ionic2 #rollupjs

Вопрос:

Я использую lodash с новым ionic2@RC.0 шаблоном проекта, который включает в себя

  • Typescript
  • Накопительный
  • модули es2015

Это работает для меня:

 npm install lodash --save
npm install @types/lodash --save-dev --save-exact
// typescript
import _ from "lodash";
  

Но, по-видимому lodash-es , рекомендуется использовать Rollup из-за тряски дерева. Но когда я делаю это:

 npm install lodash-es --save  // instead of `lodash`
npm install @types/lodash --save-dev --save-exact
// typescript
import _ from "lodash-es";
  

Я получаю Typescript сообщение об ошибке

error TS2307: Cannot find module 'lodash-es'.

Тем не менее, транспилированный javascript файл действительно работает и работает правильно. Что дает?

вот мой tsconfig

 {
  "compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "declaration": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [
      "dom",
      "es2015"
    ],
    "module": "es2015",
    "moduleResolution": "node",
    "sourceMap": true,
    "pretty": true,
    "target": "es5"
  },
  "filesGlob": [
    "**/*.ts",
    "!node_modules/**/*"
  ],
  "exclude": [
    "node_modules"
  ],
  "compileOnSave": false,
  "atom": {
    "rewriteTsconfig": false
  }
}
  

Ответ №1:

Проблема в том, что никто не создал файл typings для Lodash-es, поэтому компилятор Typescript не может выполнить проверку.

Комментарии:

1. Мы поставили в известность команду typescript, но, честно говоря, это действительно зависит от сообщества.

2. @icfantv можете ли вы связать здесь проблему, в которой ваша запись касается этого

3. @ESturzenegger, это было на встрече на месте с несколькими членами команды MSFT TS. они сделали заметки, но это не проблема TS как таковая, а проблема сообщества Lodash и lodash: github.com/lodash/lodash/issues/1835 .