繁体   English   中英

使用Object.keys将数组错误映射到字符串(javascript)

[英]error mapping array to string with Object.keys (javascript)

在特定情况下,我有一个类型为c.errors的对象返回:

{必填:true}

我想将其映射到更通用的(和固定数组)

   validationMessages = {
    required: 'Please enter',
    pattern: 'Please enter valid'
  }

我也有一个用空字符串初始化的errorMessage属性。 我的尝试是:

 this.errorMessage = Object.keys((c.errors).map(key => this.validationMessages[key]).join(' '));

我得到的错误:

参数“键”隐式具有“任意”类型。

元素隐式地具有“ any”类型,因为类型“ {{required:string; 模式:字符串; }'没有索引签名。

有什么建议吗?

this.errorMessage应该包含“请输入”(这是我在映射后的期望)

如果您索引到没有索引器的类型,则打字稿期望您通过其索引的字符串是该类型的键。 这意味着在您的情况下, key应为字符串文字类型'required''pattern' 由于Object.keys返回一个strings数组,因此,如果可以确定该数组将仅包含validationMessages有效键,则可以使用类型断言。 另外,您还有一些不匹配的括号:

this.errorMessage = Object.keys(c.errors).map((key) => this.validationMessages[key as 'required']).join(' '); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM