Где включить файл определения типа в новую настройку angular webpack

#angular #typescript #webpack #webstorm #angular-cli

#angular #typescript #webpack #webstorm #angular-cli

Вопрос:

Недавно мы перешли на последнюю версию angular 2.0 и начали использовать angular-cli, webpack для создания нашего приложения. На данный момент, когда мы используем ng test, build и т. Д., Приложение работает нормально и выдает желаемый результат, однако автоматическая компиляция (с использованием webstorm) всегда выдает много ошибок. Ранее мы предоставляли main.ts, который в терминах ссылается на другие общие файлы.ts. main.ts использовался в tsconfig.json. Итак, все прошло гладко, без каких-либо ошибок. например, простой тест, подобный этому, выдаст статическую ошибку компиляции для describe, it, expect.

 describe("it is a suite",()=>{
it("it is a test",()=>{
expect(1).toBe(2);
})
});
  

если я включу ссылку на файл jasmine.d.ts в этот тестовый файл, все исчезнет.

включение импорта из «@angular / core / testing» выдает ошибку, что такого экспортируемого элемента нет.

Итак, вопрос — куда и как мы должны включить файл определения типа, чтобы избежать этой статической компиляции?

дополнительная информация — В настройках webstorm я выбрал версию в комплекте (1.8.10), и с включенным компилятором typescript я использую tsconfig.json

tsconfig.json содержит здесь содержимое из проекта angular-cli с добавлением в раздел files для включения main.ts и typings.d.ts

typing.d.ts не имеет ничего, поскольку main.ts включает ссылку на другой файл d.ts, на который ссылается папка ‘typings’ в корневом каталоге.

Ответ №1:

Проблема заключается в вашей конфигурации TypeScript в WebStorm.

Для Angular требуется TypeScript версии 2 или выше. Одной из основных причин этого является согласование информации о типе с помощью пакетов npm, установленных в области @types видимости.

Как вы можете видеть, здесь @types/jasmine находится зависимость разработчика, которая будет предоставлять информацию о типе для describe , it и expect .

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

1. Я не использую webstorm, но с того момента, как я сделал их документы, они были довольно хорошими… Я бы предложил начать с этого… jetbrains.com/help/webstorm/2016.2/typescript.html

Ответ №2:

Конфигурация Webstorm Typescript для Angular 2

Если вы работаете с фактической angular-cli версии 1.0.0-beta.17, вам необходимо изменить версию typescript с комплектной версии 1.8.10 на версию 2.0.2 typescript, которая устанавливается angular-cli через package.json.

Это можно сделать:

в диалоговом окне

настройки / языки и фреймворки /typescript/Настройка компилятора TypeScript

Выберите пользовательский каталог: «YourProjectDir»/ node_modules typescript lib

в диалоговом
окне настройки/ языки и фреймворки/typescript

проверьте Compiler Включить компилятор сценариев ввода и выберите использовать tsconfig.json

как вы уже сделали.

Это все, что вам нужно сделать. Вам не нужно устанавливать какие-либо типизации для jasmine (больше). Это делается angular-cli с помощью @types / jasmine, как @Brocco описал в своем ответе.

Если вы не используете Angular-cli:

 npm install @types/jasmine --save-dev