Как использовать es5 в проекте, который включает typescript?

#angular #typescript #npm #ecmascript-6

#angular #typescript #npm #ecmascript-6

Вопрос:

У меня есть проект на основе Angular2, который использует TypeScript, который компилируется в es5 и использует компилятор AOT. Компилятор AOT должен иметь установленный локальный typescript, в противном случае я получаю:

 module.js:457
    throw err;
    ^

Error: Cannot find module 'typescript'
    at Function.Module._resolveFilename (module.js:455:15)
    at Function.Module._load (module.js:403:25)
    at Module.require (module.js:483:17)
    at require (internal/module.js:20:19)
  

Но когда я устанавливаю это, я получаю множество ошибок из-за отсутствия в es5 определений для функций es6, например

 Error at C:/Users/George/Source/Repos/docs/node_modules/@types/mongodb/index.d.ts:17:64: Cannot find name 'Promise'.
Error at C:/Users/George/Source/Repos/docs/node_modules/@types/mongodb/index.d.ts:21:57: Cannot find name 'Promise'.
Error at C:/Users/George/Source/Repos/docs/node_modules/@types/mongodb/index.d.ts:165:78: Cannot find name 'Promise'.
Error at C:/Users/George/Source/Repos/docs/node_modules/@types/mongodb/index.d.ts:171:92: Cannot find name 'Promise'.
Error at C:/Users/George/Source/Repos/docs/node_modules/@types/mongodb/index.d.ts:175:34: Cannot find name 'Promise'.
Error at C:/Users/George/Source/Repos/docs/node_modules/@types/mongodb/index.d.ts:182:20: Cannot find name 'Promise'.
Error at C:/Users/George/Source/Repos/docs/node_modules/@types/mongodb/index.d.ts:186:86: Cannot find name 'Promise'.
Error at C:/Users/George/Source/Repos/docs/node_modules/@types/mongodb/index.d.ts:190:72: Cannot find name 'Promise'.
  

Однако, если я добавляю es6-promise определения, я получаю следующие ошибки:

 node_modules/@types/es6-promise/index.d.ts(11,15): error TS2300: Duplicate identifier 'Promise'.
node_modules/@types/es6-promise/index.d.ts(42,19): error TS2300: Duplicate identifier 'Promise'.
node_modules/typescript/lib/lib.es6.d.ts(4852,11): error TS2300: Duplicate identifier 'Promise'.
node_modules/typescript/lib/lib.es6.d.ts(5175,11): error TS2300: Duplicate identifier 'Promise'.
node_modules/typescript/lib/lib.es6.d.ts(5342,13): error TS2300: Duplicate identifier 'Promise'.
node_modules/typescript/lib/lib.es6.d.ts(5560,11): error TS2300: Duplicate identifier 'Promise'.
  

Что я должен делать, чтобы удовлетворить все эти требования? Вы можете увидеть полное репозиторий на GitHub.

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

1. Привет, вы можете попробовать: 1. tsconfig.json ->{ «CompilerOptions»: { «target»: «es5», «sourceMap»: false } }, 2. Проверьте все определения типов: github.com/DefinitelyTyped/DefinitelyTyped/tree/master /…

2. @DmitryMatrosov Не уверен, что ты имеешь в виду? У меня есть tsconfig, он выглядит так

3. хорошо, вам нужно открыть C:/Users/George/Source/Repos/docs/node_modules/@types/mongodb/index.d.ts , и проверьте все ссылки /// <ссылочный путь=»../angular/index.d.ts» />