#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