Spec-Zone.ru › Kotlin 1.6

Генерация внешних объявлений с помощью Dukat

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

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

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

Генерация внешних объявлений во время сборки

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

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

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

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

Вручную сгенерировать внешние объявления через задачу Gradle

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

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

Последнее изменение: 07 апреля 2022
Безопасное с точки зрения типов HTML DSL Примеры

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

Spec-Zone.ru

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