从对象中定义的字符串解析方法名称

php_nub_qq

有一个对象定义了一些字符串

static readonly COMPARISON_OPERATORS = {
  [QueryObject.EQUALS]: "equals",
  [QueryObject.NOTEQUALS]: "notequals",
  ...
}

然后我试图在另一个对象上调用一些方法 c

c[QueryObject.COMPARISON_OPERATORS[operator]].apply(c, args);

我得到了所有著名的“元素隐式具有任何类型”。我试图投射它以避免错误

(<() => {}>(<any> c)[
   QueryObject.COMPARISON_OPERATORS[operator]
]).apply(c, args);

我已经有一段时间没有使用 ts 了,我的铸造技巧可能还差得很远。我需要如何投射这个?

格雷厄姆·黑利

尝试在您的COMPARISON_OPERATORS声明中添加一些类型信息

假设你的键(和值)是 type string,你可以做这样的事情来保持对象文字语法:

static readonly COMPARISON_OPERATORS: {[key: string]: string;} = {
    "=": "equals",
    "!=": "notequals",
    //...
}

其次,您正在尝试使用动态键定义对象的属性。这不能在定义对象文字时完成。

要使用动态键,您需要声明一个对象,然后手动添加键:

const myObject: {[key: string]: string;} = {};
myObject[QueryObject.EQUALS] = "equals";
// ...etc.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

方法名称的字符串

仅使用方法名称的字符串调用对象的方法

在新线程中调用方法(字符串中的方法名称)?

从字符串方法名称调用方法

Ruby 将字符串转换为方法名称

当前类的方法名称为字符串

定义中的包装方法名称

给定方法名称为字符串,如何获取方法实例?

如何使用方法名称作为字符串来调用方法

当给定方法名称为字符串时,如何调用Java方法?

在Ruby中使用具有方法名称的字符串调用方法

如何通过字符串方法名称在类内部调用python静态方法

如何通过提供方法名称作为字符串来模拟服务方法

在Java中从字符串解析对象

如何将方法名称转换为字符串

使用Web服务的代理类从字符串值动态调用方法名称

从打字稿中的数组中的字符串派生键以定义对象属性名称

通过多个属性从自定义对象数组中获取名称字符串

是否可以在不使用字符串传递方法名称的情况下编写方法名称?(C#)

给定方法名称的字符串表示形式,如何在运行时调用 Swift 5 中的方法?

从 Tableau 中的复杂字符串中解析名称

PHP解析字符串中的自定义字符

PowerShell从字符串中解析名称和版本

无法解析字符串中的缩写日期名称

我怎样才能得到一个特定的方法名称作为字符串,而不是硬编码的方法名

动态调用方法,仅提供方法名称为c#资源文件的字符串

从字符串中调用对象方法

在类定义中的方法名称中明确使用`self`

T-SQL 用分号拆分字符串字段会产生错误 XML 解析:第 1 行,字符 49,非法名称字符