обработка файлов .d.ts с помощью потрясающего загрузчика Typescript

#angular #typescript #webpack

#angular #typescript #webpack

Вопрос:

Недавно я обновил свою версию Angular2 до последней версии и столкнулся с проблемой с загрузчиком awesome-typescript, которому нужен один файл объявления. Как я могу это сделать и куда связать этот файл typings? Я использую angular2-webpack-starter. У меня есть несколько файлов .d.ts в определениях моих поставщиков приложений.

На данный момент все попытки их компиляции заканчиваются чем-то вроде:

 Module build failed: Error: Debug Failure. False expression: Output generation failed
at Object.assert (node_modulestypescriptlibtypescript.js:2407:23)
at Object.transpileModule (node_modulestypescriptlibtypescript.js:54401:18)
at State.fastEmit (node_modulesawesome-typescript-loadersrchost.ts:264:39)
at transform (node_modulesawesome-typescript-loadersrcindex.ts:164:28)
at transformationFunction (node_modulesawesome-typescript-loadersrcindex.ts:89:48)
at compiler (node_modulesawesome-typescript-loadersrcindex.ts:105:34)
at Object.loader (node_modulesawesome-typescript-loadersrcindex.ts:18:18)
@ ./src/app/providers/socket/index.ts 6:9-40
@ ./src/app/providers/socket/chat-service.ts
@ ./src/app/pages/restricted/restricted.ts
@ ./src/app/app.routes.ts
@ ./src/app/app.module.ts
@ ./src/app/index.ts
@ ./src/main.browser.ts
@ multi main
  

Совет от ATL readme:

 All declaration files should be resolvable from the entry file. The easiest way to do this is to create a references.d.ts file which contains references to all of your declaration files. Then reference references.d.ts from your entry file.
  

Заранее спасибо!

Ответ №1:

Я исключил файлы .d.ts из входных источников и вместо этого определил расположение файлов .d.ts, используя свойство typingsRoot tsconfig.json. Кажется глупым, что ошибка должна выдаваться, когда входной файл не приводит к выводу. Это было бы довольно распространенным явлением, например, файл, содержащий только определение интерфейса.

Ответ №2:

Поскольку мои файлы .d.ts содержали только интерфейсы, я переименовал их все в [something] .interface.ts . Теперь я только custom-typings.d.ts что связал это с tsconfig.json другими вещами.