编辑: Kotlin YouTrack尚不支持和跟踪
我正在尝试编写external
与以下 Typescript 接口匹配的 Kotlin 声明(这是通过 表示 JavaScript 访问的有效 TS headers['content-length']
):
export interface Headers {
'content-length'?: string;
}
Dukat 生成以下内容,应视为有效:
external interface Headers {
var `content-length`: String? get() = definedExternally; set(value) = definedExternally
}
但现在编译器抱怨:
Name contains illegal chars that can't appear in JavaScript identifier
确实不能出现在 JS 标识符中,但也不是必须的。所有 Kotlin 对该属性的访问,例如:
val length = headers.`content-length`
如果编译为const length = headers["content-length"]
.
我尝试通过@JsName
以下方式解决它:
@JsName("content-length")
@JsName("'content-length'")
@JsName("\"content-length\"")
但是所有这些都失败了,因为它们只允许作为有效 JS 标识符的字符串。有没有办法解决这个问题?