Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我不能使用计算结果为相同字符串的不同类型访问对象属性?_Javascript_Typescript - Fatal编程技术网

Javascript 为什么我不能使用计算结果为相同字符串的不同类型访问对象属性?

Javascript 为什么我不能使用计算结果为相同字符串的不同类型访问对象属性?,javascript,typescript,Javascript,Typescript,ResourceType是一个对象,其属性是NodeType的值 ResourceType.engine===NodeType.engine===“引擎” 为什么我不能使用NodeType的值来访问对象的值,当它们都计算为同一个字符串时,该值由ResourceType的值进行键控 export declare enum NodeType { engine = "engine", agent = "agent", api = &quo

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

这是我的一个错误

而不是

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;
}  

这是我的一个错误

而不是

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;
}