[英]How to assign string types from a enum in Typescript?
所以我有一個包含一組字符串的枚舉
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.