Spec-Zone.ru › Kotlin 1.4

Автоматическое создание внешних объявлений с помощью Dukat

Dukat все еще экспериментальный. Если вы столкнётесь с проблемами, сообщите о них в системе отслеживания проблем Dukat.

Dukat — это инструмент, который в настоящее время находится в разработке и позволяет автоматически преобразовывать файлы объявлений TypeScript (.d.ts) во внешние объявления Kotlin. Это призвано сделать использование библиотек из экосистемы JavaScript в Kotlin безопасным с точки зрения типов, уменьшив необходимость написания внешних объявлений и обёртки для JS-библиотек вручную.

Плагин Gradle для Kotlin/JS предоставляет интеграцию с Dukat. При включении плагина для npm зависимостей, предоставляющих определения TypeScript, автоматически генерируются внешние объявления Kotlin, безопасные с точки зрения типов. У вас есть два способа выбрать, должен ли Dukat генерировать объявления: во время сборки и вручную через задачу Gradle.

Создание внешних объявлений во время сборки

Функция зависимости npm принимает третий параметр после имени пакета и версии: generateExternals. Это позволяет контролировать, должен ли Dukat генерировать объявления для конкретной зависимости:

dependencies {
    implementation(npm('decamelize', '4.0.0', true))
}
dependencies {
    implementation(npm("decamelize", "4.0.0", generateExternals = true))
}

Если репозиторий зависимости, которую вы хотите использовать, не предоставляет определения TypeScript, вы также можете использовать типы, предоставленные через репозиторий DefinitelyTyped. В этом случае убедитесь, что вы добавили зависимости npm для your-package и @types/your-package (с generateExternals = true).

Вы можете использовать флаг kotlin.js.generate.externals в своём файле gradle.properties для установки поведения генератора для всех npm зависимостей одновременно. Как обычно, отдельные явные настройки имеют приоритет над этим общим флагом.

Ручное создание внешних объявлений через задачу Gradle

Если вы хотите иметь полный контроль над объявлениями, сгенерированными Dukat, хотите внести коррективы вручную или столкнулись с проблемами с автоматически сгенерированными внешними объявлениями, вы также можете вручную инициировать создание объявлений для всех ваших npm зависимостей через задачу Gradle generateExternals. Это сгенерирует объявления в каталоге с названием externals в корне вашего проекта. Здесь вы можете просмотреть сгенерированный код и скопировать необходимые части в свои каталоги с исходными данными.

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

© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/reference/js-external-declarations-with-dukat.html

Spec-Zone.ru

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