Ошибка Typescript при приведении

#typescript #webpack #karma-runner

#typescript #webpack #карма-бегун

Вопрос:

Я запускаю начальный проект, в котором работают Jasmine и Karma. Все настроено правильно.

Webpack запускает приложение «npm start», но когда я запускаю «npm test», Webpack просматривает файл .ts, который затем загружает файлы .spec.ts. Я получаю сообщение об ошибке при запуске этого кода из начального проекта

 bundle is now VALID.
[32m06 10 2016 10:16:42.660:INFO [karma]: 
[39mKarma v0.13.22 server started at http://localhost:9876/

[32m06 10 2016 10:16:42.664:INFO [launcher]: 
[39mStarting browser PhantomJS
[32m06 10 2016 10:16:44.259:INFO [PhantomJS 2.1.1 (Windows 7 0.0.0)]: 
[39mConnected on socket /#YRouUOeCLSlLTu_KAAAA with id 23215732
PhantomJS 2.1.1 (Windows 7 0.0.0)

ERROR
  SyntaxError: Unexpected token '<'
  at C:/Development/ScratchApp/ScratchApp/src/test.ts:4
  

PhantomJS 2.1.1 (Windows 7 0.0.0)

Ошибка — это неожиданный токен ‘<‘ в следующем файле test.ts

 // this file is only being used by karma
require('phantomjs-polyfill')

requireAll((<any>require).context("./", true, /spec.ts$/));
function requireAll(r: any): any {
    r.keys().forEach(r);
}
  

Может ли кто-нибудь увидеть эту синтаксическую ошибку?

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

1. Похоже, вы пытаетесь запустить код typescript. Вы должны сначала скомпилировать код typescript в код javascript, а затем запустить его.

2. Да, вы правы. Проблема была более сложной, чем я опубликовал здесь, из-за того, что система управления версиями теряла файлы сопоставления (и определения). WebPack по какой-то странной причине просматривал неправильный источник на сервере сборки

Ответ №1:

Важная часть этого вопроса заключается в следующем:

 at C:/Development/ScratchApp/ScratchApp/src/test.ts:4
  

Вот почему вы получаете неожиданный токен ‘<‘, потому что ваш файл TypeScript имеет <any> начало строки requireAll . JavaScript не ожидает найти аннотации типов, поэтому все они удаляются во время компиляции.

Обновите код среды выполнения, чтобы использовать скомпилированный файл:

 C:/Development/ScratchApp/ScratchApp/src/test.js