我有一个字符串值的枚举。 我想将一个字符串值传递给 enum 并从中获取值。 我也有课 现在我正在调用下面的函数 现在我想像这样传递枚举中的值,但我无法做到 但是现在允许我得到错误类型的编译时错误。 请告诉我如何实现? 编辑:错误是 元素隐式具有“any”类型,因为“string” ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
所以我有一个包含一组字符串的枚举
export enum apiErrors {
INVALID_SHAPE = "INVALID_SHAPE",
NOT_FOUND = "NOT_FOUND",
EXISTS = "EXISTS",
INVALID_AUTH = "INVALID_AUTH",
INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR"
}
我定义了如下界面
export interface IApiResponse {
status: boolean;
payload: any;
errorCode?: string; // I want this to be "INVALID_SHAPE" | "NOT_FOUND" and so on...
}
我知道我可以像"INVALID_SHAPE" | "NOT_FOUND" ...
一样定义"INVALID_SHAPE" | "NOT_FOUND" ...
"INVALID_SHAPE" | "NOT_FOUND" ...
但是,是否有一种方法可以将枚举结构分解为errorCode
,使其只能接受这些字符串之一?
如@JBNizet和@AviadP所述,只需将errorCode
设置为apiErrors
枚举即可。 Typescript将自动确保实现IApiResponse
接口的所有内容都将errorCode
设置为这些值之一。
export enum apiErrors {
INVALID_SHAPE = "INVALID_SHAPE",
NOT_FOUND = "NOT_FOUND",
EXISTS = "EXISTS",
INVALID_AUTH = "INVALID_AUTH",
INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR"
}
export interface IApiResponse {
status: boolean;
payload: any;
errorCode?: apiErrors // this is the change
}
// this would now be invalid
const invalidResponse: IApiResponse = {
status: false,
payload: {foo: 'bar'},
errorCode: 'something not in the enum',
};
// this is valid
const validResponse: IApiResponse = {
status: false,
payload: {foo: 'bar'},
errorCode: apiErrors.INVALID_SHAPE,
};
// this is also valid
const anotherValidResponse: IApiResponse = {
status: true,
payload: {foo: 'bar'},
// errorCode isn't included at all
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.