Spec-Zone.ru › TypeScript 5.1

Создание файлов .d.ts из файлов .js

С TypeScript 3.7 TypeScript добавил поддержку генерации файлов .d.ts из JavaScript с использованием синтаксиса JSDoc.

Это означает, что вы можете контролировать опыт работы с редакторами, поддерживающими TypeScript, не перенося свой проект в TypeScript или не поддерживая файлы .d.ts в вашем коде. TypeScript поддерживает большинство тегов JSDoc, вы можете найти ссылку здесь.

Настройка проекта для вывода файлов .d.ts

Для добавления создания файлов .d.ts в ваш проект необходимо выполнить до четырёх шагов:

  • Добавить TypeScript в зависимости для разработки
  • Добавить tsconfig.json для настройки TypeScript
  • Запустить компилятор TypeScript для генерации соответствующих файлов .d.ts для JS-файлов
  • (опционально) Изменить ваш файл package.json для указания типов

Добавление TypeScript

Вы можете узнать, как это сделать, на нашей странице установки.

TSConfig

TSConfig — это файл jsonc, который настраивает как флаги компилятора, так и указывает, где искать файлы. В этом случае вам понадобится файл, подобный следующему:

{
  // Change this to match your project
  "include": ["src/**/*"],

  "compilerOptions": {
    // Tells TypeScript to read JS files, as
    // normally they are ignored as source files
    "allowJs": true,
    // Generate d.ts files
    "declaration": true,
    // This compiler run should
    // only output d.ts files
    "emitDeclarationOnly": true,
    // Types should go into this directory.
    // Removing this would place the .d.ts files
    // next to the .js files
    "outDir": "dist",
    // go to js file when using IDE functions like
    // "Go to Definition" in VSCode
    "declarationMap": true
  }
}

Вы можете узнать больше об опциях в справочнике tsconfig. Альтернативой использованию файла TSConfig является использование командной строки, это поведение такое же, как у команды CLI.

npx -p typescript tsc src/**/*.js --declaration --allowJs --emitDeclarationOnly --outDir types

Запуск компилятора

Вы можете узнать, как это сделать, на нашей странице установки. Убедитесь, что эти файлы включены в ваш пакет, если у вас есть файлы в .gitignore вашего проекта.

Редактирование файла package.json

TypeScript повторяет разрешение модулей для узла в package.json, с дополнительным шагом для поиска файлов .d.ts. Приблизительно, разрешение сначала проверит опциональное поле types, затем поле "main", и, наконец, попытается найти index.d.ts в корне.

Package.json Расположение стандартного файла .d.ts
Поле “types” отсутствует проверяет “main”, затем index.d.ts
“types”: “main.d.ts” main.d.ts
“types”: “./dist/main.js” ./dist/main.d.ts

Если отсутствует, используется “main”

Package.json Расположение стандартного файла .d.ts
Поле “main” отсутствует index.d.ts
“main”:“index.js” index.d.ts
“main”:“./dist/index.js” ./dist/index.d.ts

Советы

Если вы хотите написать тесты для своих файлов .d.ts, попробуйте tsd.

© 2012-2023 Microsoft
Licensed under the Apache License, Version 2.0.
https://www.typescriptlang.org/docs/handbook/declaration-files/dts-from-js.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API