#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» />