我们可以将其
Mode设为一个类型,并将值设为同一类型。
type Mode = string;let Mode = { Silent: "Silent", Normal: "Normal", Deleted: "Deleted"}let modeStr: string = "Silent";let mode: Mode;mode = Mode[modeStr]; // Silentmode = Mode.Normal; // Normalmode = "Deleted"; // Deletedmode = Mode["unknown"]; // undefinedmode = "invalid"; // "invalid"更严格的版本:
type Mode = "Silent" | "Normal" | "Deleted";const Mode = { get Silent(): Mode { return "Silent"; }, get Normal(): Mode { return "Normal"; }, get Deleted(): Mode { return "Deleted"; }}let modeStr: string = "Silent";let mode: Mode;mode = Mode[modeStr]; // Silentmode = Mode.Normal; // Normalmode = "Deleted"; // Deletedmode = Mode["unknown"]; // undefined//mode = "invalid"; // Error字符串枚举作为此答案:
enum Mode { Silent = <any>"Silent", Normal = <any>"Normal", Deleted = <any>"Deleted"}let modeStr: string = "Silent";let mode: Mode;mode = Mode[modeStr]; // Silentmode = Mode.Normal; // Normal//mode = "Deleted"; // Errormode = Mode["unknown"]; // undefined


