Скомпилируйте Typescript в модули ES собственного браузера
Как вы можете скомпилировать Typescript для работы с браузерами, которые поддерживают модули ES?
я использую <script type="module">
с module=es2015
в моем tsconfig, но я не могу написать пути импорта, которые работают для компилятора и среды выполнения.
Для браузера требуются полные пути импорта, а Typescript не преобразует расширение импорта во время компиляции.
Например, следующий фрагмент TS не изменяется во время компиляции.
import foo from "./foo.ts";
import bar from "./bar";
Когда он запускается в браузере, он отправляет два сетевых запроса на файлы, которые не существуют.
GET foo.ts -> (should be) GET foo.js
GET bar -> (should be) GET bar.js
1 ответ
Единственный способ достичь этого на данный момент - это использовать .js
в вашем импорте TypeScript (хотя файл технически .ts
).
// index.ts
import foo from "./foo.js";
// foo.ts
export default "foo";
Это работает только в TypeScript 2 и более современных версиях. Посмотрите эту проблему GitHub для большего контекста.