我知道我可以有一个像这样的枚举:
enum TShirtSize {
Small = 3,
Medium = 5,
Large = 8
}
var mySize = TShirtSize.Large;
但是有什么方法可以指定文本字符串而不是数字 3,5 和 8 吗?
最佳答案
您可以创建一个可用于纯字符串枚举的类。演示:
class Enum {
constructor(private value: string) { }
/** For equality == with string */
toString() {return this.value }
/** For send to server serialization */
toJSON() {return this.value }
}
class Foo extends Enum {
static First = new Foo('First')
}
// From server to browser
var recievedDTO: { something: Foo } = <any>{
something: 'First'
}
console.log(recievedDTO.something == Foo.First); // true
// To server
var sendDTO = {
something: Foo.First,
}
console.log(JSON.stringify(sendDTO) == '{"something":"First"}'); // true
// Warning: don't use `===`
console.log(recievedDTO.something === Foo.First); // false
关于typescript - 我可以让枚举引用文本字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25820171/