Javascript 无法提取Typescript中的对象值

Javascript 无法提取Typescript中的对象值,javascript,Javascript,我一直在尝试将JavaScript web表单转换为Typescript,但无法解决如何处理以下问题(在JavaScript中可以工作): Visual Studio告诉我: 错误TS2339类型上不存在属性“值” “对象构造函数” 我能做什么?如果不支持Object.values(),您可以通过键执行以下操作: 让cookieData='{“键”:“值”} 让fieldValues=JSON.parse(cookieData) 让keys=Object.keys(字段值) 让values=k

我一直在尝试将JavaScript web表单转换为Typescript,但无法解决如何处理以下问题(在JavaScript中可以工作):

Visual Studio告诉我:

错误TS2339类型上不存在属性“值” “对象构造函数”


我能做什么?

如果不支持
Object.values
(),您可以通过
键执行以下操作:

让cookieData='{“键”:“值”}
让fieldValues=JSON.parse(cookieData)
让keys=Object.keys(字段值)
让values=keys.map(k=>fieldValues[k])
console.log(键)/=>['key']
console.log(values)/=>['value']
对象.values(..)
不稳定,因此在许多浏览器中不支持()

改为使用
map

let values = Object.keys(fieldValues).map(key => fieldValues[key]);
如果确实要使用此函数,则需要在
tsconfig.json
上添加
“es2017.object”
库。确保您使用的是polyfill,或者您的最终平台是否支持此功能


作为替代方案。你也可以用


如果需要特定密钥的值,可以使用以下方法访问该密钥:

Object(nameofobj)["nameofthekey"]

在我的设置中,任何响应都有效,所以我尝试了以下方法:

 let formattedData = {}
 for (let index = 0; index < values.length; index++) {
   eval("formattedData[indexToChar(index)] = values[index]");
 }
let formattedData={}
for(让index=0;index
基本上,它之所以有效是因为js理解它,但ts不理解,所以如果我使用evalts,就不要尝试解析,也不要抛出错误,所以js会正确地阅读它。 评估文件:


谢谢你让我知道这件事。我不知道Object.values没有稳定。我很高兴帮助您:)规范是稳定的、冻结的、已提交的(第4阶段);它只是还没有在任何地方实现,当然可能永远不会在IE等上实现。
Object(nameofobj)["nameofthekey"]
 let formattedData = {}
 for (let index = 0; index < values.length; index++) {
   eval("formattedData[indexToChar(index)] = values[index]");
 }