[英]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.