我有一个typescript类,它接受任何成员名。
interface ControlTagType {
type?: String | null;
[name: string]: any
}
class ControlTag {
tagSource: String | null = null;
tag: ControlTagType | null = null;
}
export { ControlTag };
这样我就可以在vuejs中使用这个类,如下所示。
controlTag.push({ tagSource: 'USER', tag: { type: 'X', TAG_1: 'TAG_X' } });
controlTag.push({ tagSource: 'AUTO', tag: { type: 'Y', TAG_2: 'TAG_Y' } });
这是我另一个问题的唯一解决方案。
但我找不到如何在kotlin中实现这种通用成员。
我有一个枚举类,我在序列化时使用了这个类。
@JsonValue
fun value(): X {
return X( this.name : this.name)
}
例如
data class X(val [name: string]: any)
我可以按照下面的方法来做,但是太复杂了,应该为每个类做。
@JsonValue
fun value(): Any? {
when (this.name) {
XX_XX.name -> {
return object {
var XX_XX: String = name
}
}
YY_YY.name -> {
return object {
var YY_YY: String = name
}
}
ZZ_ZZ.name -> {
return object {
var ZZ_ZZ: String = name
}
}
else -> return null
}
}
而且在这个实现中,它将参数名转换为小写。
{"type":"XX","xx_XX":"XX_XX"}