Принимает ли команда » tsc` файлы .d.ts?

#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. Большое вам спасибо за ваш ответ!