Импорт TypeScript с расширением

Возможно, вы слышали о Deno, который является новой средой исполнения TypeScript.

Одним из основных отличий между Deno и обычным TypeScript является то, что вы должны включить расширение файла в оператор импорта. например:

import foo from './bar.ts'
                       ^^

Я хотел бы написать код, совместимый как с Deno, так и с Webpack.

Как я могу настроить Webpack, чтобы разрешить импорт с .ts расширение как выше?

Кроме того, как я могу предотвратить следующую ошибку VSCode?

1 ответ

Решение

Webpack можно настроить для разрешения расширений всех импортов с помощью свойства resolv. Если в списке расширений есть пустая строка, веб-пакет также примет импорт с полным расширением. Пустая строка должна быть первой записью в списке.

module.exports = {
 // ...
 resolve: {
   extensions: ['', '.ts', '.tsx' /*etc ...*/],
 }
}

Если в списке расширений нет пустой строки для использования, веб-пакет попытается импортировать что-то вроде ./bar.ts.ts вместо ./bar.ts,

Вы можете отключить предупреждения в VSCode от ts-компилятора, используя комментарий вроде

// @ts-ignore TS6133
import foo from './bar.ts'
Другие вопросы по тегам