#javascript #typescript #compilation #tsconfig #tsc
Вопрос:
У меня есть файл .d.ts, и я хотел бы скомпилировать его в файл .js. Возможно ли это с помощью tsc
команды?
Я знаю, что tsc
команда может взять любой файл .ts, а затем скомпилировать его в файл .js (я проверил это). Однако я не смог заставить его принять файл .d.ts в качестве входных данных, так как он не выводил для меня ни одного файла .js.
Я попытался поиграть с tsconfig.json, и вот как выглядит мой файл на данный момент:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"sourceMap": true,
"outDir": "ali_output_javascript"
}
}
Я также знаю следующее о файлах .d.ts и .ts. Файлы объявлений машинописного текста (.d.ts) описывают форму файла JavaScript. Это позволяет использовать существующий код JavaScript в TypeScript без необходимости писать весь код в TypeScript. Файлы машинописи (.ts) — это просто стандартное расширение файла при написании на машинописном языке.
Из этой средней статьи (https://medium.com/jspoint/typescript-compilation-the-typescript-compiler-4cb15f7244bc), в нем говорится, что компиляция TypeScript ищет расширения файлов .ts и .d.ts:
Обычно вы используете опцию файлы или включить и указываете пути к файлам или шаблоны глобусов для включения файлов машинописного текста в процесс компиляции. Однако вы можете удалить расширение .ts из шаблона glob и позволить компилятору TypeScript искать входные файлы. Если шаблон глобуса не имеет расширения файла, TypeScript ищет файлы, заканчивающиеся расширением .ts или .d.ts, в каталоге, указанном шаблоном глобуса. Файл .d.ts представляет собой файл декларации машинописного текста, мы обсудили этот тип файла на уроке Файлы деклараций (скоро будет). Когда параметр компилятора allowJs установлен в значение true, машинопись также будет искать файлы .js.
Пожалуйста, дайте мне знать, если у вас есть какие-либо предложения, и спасибо за ваше время.
Комментарии:
1. Файл .d.ts содержит типы , а не реализации, так какой JS будет испущен из этого?
2.
.d.ts
файлы не содержат исполняемого кода, только типы. И типы исчезают, когда вы скомпилировали.js
файл. Что вы ожидаете от него экспортировать?3. @jonrsharpe, Алекс Уэйн спасибо, вы оба делаете хорошие замечания 🙂 Я тоже был немного сбит с толку этим, но затем статья medium дала мне основание полагать, что, возможно, есть способ сделать это. Я думаю, что, возможно, неправильно понял то, что пыталась сказать статья medium. Еще раз спасибо вам за помощь!
Ответ №1:
Вы неправильно поняли, что такое файлы .d.ts.
Они не должны быть перенесены в файлы .js, файлы .ts должны быть перенесены в файлы .js и файлы .d.ts для строгого ввода в среде разработки JavaScript или для дальнейшего использования в проекте машинописи.
Кроме того, .d.ts не являются исполняемыми и не могут создавать исполняемые файлы, поскольку они являются просто пустыми оболочками с типами, которые также известны как окружающее объявление, в терминах машинописи, что означает «без реализации».
Комментарии:
1. Большое вам спасибо за ваш ответ!