如何声明一组固定字符串的Kotlin类型



在Typescript中,我可以将一组有限的字符串声明为类型:

declare type Status = 'GOOD' | 'MEDIUM' | 'POOR';

然后我可以使用这种类型来限制分配给status属性的字符串:

interface Foo {
status: Status;
}

在科特林我该怎么做?

在Kotlin中,您将为此创建一个enum

enum class Status {
GOOD, MEDIUM, POOR
}

在这种基本情况下,可以使用enum常数的name,如下所示:

val state: Status = Status.MEDIUM
val stateString: String = state.name

如果你想拥有更复杂的枚举,你可以为它们提供自定义属性:

enum class Status(val description: String) {
GOOD("Good State"), MEDIUM("Medium State"), POOR("Poor State")
}

最新更新