如何基于打字稿类型创建数组,而使用枚举类型

时间:2020-06-28 16:59:38

标签: javascript typescript typescript-typings

我在打字稿中有一个UserRoles类型

type = 'student' | 'editor' | 'moderator' | 'admin'
or
type UserRoles = 'student' | 'editor' | 'moderator' | 'admin'

如何基于这些类型创建数组?像

const roles = Array.from(UserRoles)

预先感谢:)

2 个答案:

答案 0 :(得分:3)

string(451) "-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdWs0NgjFlLV6yGQxYpu 7btsRTRWEi7fpSI8mSdTHgiZJY42ojQdNoLinhUUrj7DJNid18/DpjqBH271UHoz HGsOogVT9VfkIRfiYYMjjkUJGUFfCSefCHDidT8KJMjAgDDlr3cR82o+9417MQvp //jFO8rqvmNi7mRNYUGLX7WImv3tELZzw1JaZ41Ene2BA7wMzZymN/q9bJhThwoQ 4wMTLFvpSXyi7HDSrKZ3IobMdeiYWXBmW14jzznfdAf8wOcTRTglKJZXbTAHcRRy qCmKTZoFq0MFbwwe1QhgENwojRkb3XDGv06QeElbGXNOwuk7w9+Xa9MC6GTeFqin 6wIDAQAB -----END PUBLIC KEY----- " 仅指一种类型,不能将其用作值。但是您可以为角色明确创建一个只读数组,并从中提取类型。例如,

UserRoles

typescript playground

答案 1 :(得分:0)

您的情况下的一种好的做法是使用Enums。 除了数字,您还可以使用字符串枚举(这是您需要的)。

enum UserRoles {
    Student = 'student',
    Editor = 'editor',
    Moderator = 'moderator',
    Admin = 'admin'
}

如果采用这种方式,则可以将Enum视为一个对象,并使用它获取其值的数组

const values = Object.values(UserRoles);