Typescript скомпилировать с импортом - PullRequest
0 голосов
/ 24 апреля 2020

Итак, у меня есть два файла: a.ts и b.ts. b экспортирует что-то для использования a. Компилятор TypeScript обрабатывает это нормально, но отказывается создавать действительный вывод для браузера. Пример:

import { test } from "./b";

console.log(test);

b.ts

export const test = "quest";

, и теперь я пытаюсь скомпилировать его:

$ tsc --lib dom,es2018 --target ES2018 --out test.js a.ts b.ts
b.ts:1:1 - error TS6131: Cannot compile modules using option 'out' unless the '--module' flag is 'amd' or 'system'.

1 export const test = "quest";
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Found 1 error.

хм, странно. Хорошо, давайте попробуем использовать --module. Если я использую amd, браузер, который загружает test.js, скажет мне: ReferenceError: define is not defined. Если я попробую system, он скажет: ReferenceError: System is not defined.

Хорошо, это не работает. Давайте попробуем без установки одного выходного файла с --out. Это дает мне:

SyntaxError: import declarations may only appear at top level of a module a.js:1
SyntaxError: export declarations may only appear at top level of a module b.js:1

Итак, исходя из этого, кажется, что мои единственные варианты использования машинописи:

  • Поместите весь код в один файл
  • Используйте внешнюю библиотеку, например require. js или webpack
  • Узнайте, что такое модуль и если / как его можно использовать в браузере

Или я что-то упустил? Как мне скомпилировать Typescript с использованием импорта без добавления библиотек / модулей?

Версия TypeScript: 3.8.3

1 Ответ

0 голосов
/ 24 апреля 2020

Синтаксическая ошибка

исправьте это

export const test = "quest";

до

export test = "quest";

Нет необходимости добавлять здесь константу при экспорте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...