我知道我可以有一个这样的枚举:
enum TShirtSize {
Small = 3,
Medium = 5,
Large = 8
}
var mySize = TShirtSize.Large;
Run Code Online (Sandbox Code Playgroud)
但是有什么方法可以指定文本字符串而不是数字 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6785 次 |
| 最近记录: |