#javascript #typescript
#javascript #typescript
Вопрос:
ResourceType — это объект, свойства которого являются значениями nodeType.
ResourceType.engine === nodeType.engine === «движок».
Почему я не могу использовать значение nodeType для доступа к значению объекта, которое определяется значением ResourceType, когда они оба вычисляют одну и ту же строку?
export declare enum NodeType {
engine = "engine",
agent = "agent",
api = "api",
pluginBuilder = "plugin-builder"
}
export class ResourceType {
public static agent: NodeType.agent;
public static engine: NodeType.engine;
}
export class ResourceQuotaException extends HttpMetaException {
constructor(resourceType: NodeType) {
// Error message gets passed as first parameter
super(ResourceQuotaException.MESSAGES[resourceType], HttpStatus.BAD_REQUEST);
}
public static readonly MESSAGES = {
[ResourceType.agent]: 'Agent Limit Reached',
[ResourceType.engine]: 'Engine Limit Reached'
};
}
throw new ResourceQuotaException(NodeType.engine); // Message is undefined
Ответ №1:
Это была ошибка с моей стороны.
Вместо
export class ResourceType {
public static agent: NodeType.agent;
public static engine: NodeType.engine;
}
это должно быть
export class ResourceType {
public static agent = NodeType.agent;
public static engine = NodeType.engine;
}