是否有将 Lambda 记录为 KDoc 中的函数参数的约定?

Mic*_*Liu 6 kotlin kotlin-dokka

我正在编写一个以 lambda 作为参数的 Kotlin 函数,例如

fun someFunction( param1: (value1: Boolean, value2: Boolean) -> Unit )
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法将函数记录为输入,以便我可以参考value1value2在文档中?

到目前为止做

/**
* Documentation for someFunction
* @param param1 Takes a function where [value1] is some value
*/
fun someFunction( param1: (value1: Boolean, value2: Boolean) -> Unit )
Run Code Online (Sandbox Code Playgroud)

没有奏效,dokka 将无法构建文档。

hot*_*key 1

typealias实现此目的的一种方法是,将函数类型提取到 a 中,并在类型别名的 KDoc 中记录函数的语义,尽管不像简单地在文档中放置一段那样简单。

缺点是 IDE 也无法解析 KDoc 中函数类型别名的函数类型声明参数。

例如:

/**
 * Documentation for the contract of this usage of the functional type.
 * @param value1 or [value1], unfortunately, won't work in the IDE just yet.
 */
typealias SomeEventHandler = (value1: Boolean, value2: Boolean) -> Unit

/**
* Documentation for someFunction
* @param param1 Some docs on this specific usage of [SomeEventHandler]
*/
fun someFunction(param1: SomeEventHandler)
Run Code Online (Sandbox Code Playgroud)

鉴于类型别名的工作方式,以这种方式转换的函数仍将接受函数类型的“正常”实例(Boolean, Boolean) -> Unit