![](/img/trans.png)
[英]how to create an enum-like object with bigint initializers in typescript?
[英]Convert object values to enum-like type in TypeScript
ParsedParametersObject["--mode"]
的类型必须是Parameters[ValidFirstCommandPhrases.buildProject].mode.values
。 目前它已被硬编码,因此当将新支持的模式添加到应用程序时,我们需要编辑Parameters[ValidFirstCommandPhrases.buildProject].mode.values
和ParsedParametersObject
。
如何将Parameters[ValidFirstCommandPhrases.buildProject].mode.values
转换为有效的类枚举类型?
enum ValidFirstCommandPhrases {
initializeProject = "initializeProject",
buildProject = "buildProject"
}
export const Parameters = {
[ValidFirstCommandPhrases.buildProject]: {
mode: {
name__includingDoubleNDash: "--mode",
values: {
development: "development",
production: "production",
}
},
debug: {
name__includingDoubleNDash: "--debug"
}
}
} as const;
type ParsedParametersObject = {
// --mode
[Parameters[ValidFirstCommandPhrases.buildProject].mode.name__includingDoubleNDash]:
"development" | "production"; // Hardcoded!!
}
您可以使用的一个选项是拥有一个专用的ENVIRONMENTS
枚举并将其用作ParsedParametersObject["--mode"]
类型中的类型。
见下文
enum ValidFirstCommandPhrases {
initializeProject = "initializeProject",
buildProject = "buildProject"
}
enum ENVIRONMENTS {
DEVELOPMENT = 'development',
PRODUCTION = 'production'
}
export const Parameters = {
[ValidFirstCommandPhrases.buildProject]: {
mode: {
name__includingDoubleNDash: "--mode",
values: {
development: ENVIRONMENTS.DEVELOPMENT,
production: ENVIRONMENTS.PRODUCTION,
}
},
debug: {
name__includingDoubleNDash: "--debug"
}
}
} as const;
type ParsedParametersObject = {
// --mode
[Parameters[ValidFirstCommandPhrases.buildProject].mode.name__includingDoubleNDash]:
ENVIRONMENTS;
}
希望能帮助到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.