2016-02-01 4 views
3

Я хотел бы начать использовать TypScript в существующем проекте Babel. Моя цель - добавить машинописный текст в процесс сборки с минимальными изменениями в существующем коде. По этой причине я решил связать машинописный текст (ориентированный на ES2015) и Babel. С поддержкой js-файлов ts1.8, я думал, что, наконец, я смогу хранить все как есть, а затем конвертировать файлы по одному. Но вот первый вопрос, который я столкнулся:
error TS8003: 'export=' can only be used in a .ts file.TypScript 1.8 - ES2015 импорт в js-файлах

Машинопись не швы, чтобы экспорт es2015 синтаксиса:
export default 'foo';.
Мы используем синтаксис es2015 для импорта/экспорта, и я не хочу изменять его для старого symtax ​​commonJS. Есть ли способ сделать машинописный текст?

Вот минимальный пример, демонстрирующий проблему:

hello.js

export default (name) => console.log(`Hello ${name}`); 

tsconfig.json

{ 
    "version": "1.8", 
    "compilerOptions": { 
     "module": "es2015", 
     "allowJs": true, 
     "target": "es2015" 
    } 
} 

командной строки (используя машинописный 1.8)

tsc --outDir ../out

результат

hello.js(1,1): error TS8003: 'export=' can only be used in a .ts file.

+0

Кажется, что есть путаница. 'export default 'foo';' предназначен для экспорта. Затем вам нужно импортировать с помощью соответствующего синтаксиса: 'import foo from. ./jsfile"; ' – Zorgatone

+0

В любом случае посмотрите здесь, например, синтаксис https://github.com/Microsoft/TypeScript/issues/2242 – Zorgatone

+0

уверен, Знаю об этом. Я отредактирую свой вопрос, чтобы избежать путаницы. –

ответ

3

Ошибка вы получаете для default export является a bug in the TypeScript compiler. Я отправил a fix, так как вы подали эту проблему.

Если вы хотите, чтобы указать модуль корня в файлах JavaScript (который является нестандартным и специфическими для определенных модулей погрузчиков, как CommonJS), способ сделать это так же, как вы могли бы сделать это в JavaScript:

module.exports = yourRootExportObjectHere; 

Компилятор должен распознавать и уважать их как эквивалентные объявлениям export =.

+0

Итак, я получаю неправильную ошибку, но должен ли я получить сообщение об ошибке? Наконец, я разрешаю писать 'export default' в .js-файлах? –

+0

Нет, вы не должны получать сообщение об ошибке с этим экспортом по умолчанию. Исправлено исправление, поэтому попробуйте ночную сборку завтра с 'npm install -g typescript @ next'. –

+0

Тогда я проверю это завтра. Спасибо за вашу помощь! –

 Смежные вопросы

  • Нет связанных вопросов^_^