如何在Kotlin中创建这个界面?

2ledvvac  于 2023-03-03  发布在  Kotlin
关注(0)|答案(1)|浏览(192)

我在 typescript 中有一个接口,看起来像这样:

interface Test {
  'some-key' : boolean
}

有人知道怎么把这个转换成Kotlin吗?当我试着在kotlin中使用这个的时候,就像这样:

interface Test {
  val 'some-key' : boolean
}

它说:“需要属性名称或接收器类型”

798qvoo8

798qvoo81#

some-key不是有效的Kotlin标识符。您需要使用some_key或(更习惯的用法)someKey来定义接口中的属性。

interface Test {
  val someKey: Boolean
}

然后,实现者需要将val someKey属性定义为布尔值。
请注意,Kotlin与Typescript不同,Kotlin是名义上类型化的,因此Test接口并没有神奇地封装所有用布尔值someKey编写的类,而是专门充当选择实现Test接口的类的超类型。
如果您要寻找的是“仅包含”布尔值的类型,而不是封装了包含布尔值的概念的抽象接口,那么您需要data class

data class Test(val someKey: Boolean)

这是一个非抽象的可以示例化的类型,具体包含一个Boolean,调用方可以自由访问。
如果你真的想在Kotlin中使用类似some-key的键值名,你可以用反勾号把它括起来,注意你的库的用户也必须这样做。

data class Test(val `some-key`: Boolean)

相关问题