打字稿并将对象转换为字符串

Posted

技术标签:

【中文标题】打字稿并将对象转换为字符串【英文标题】:Typescript and converting Object to String 【发布时间】:2017-02-11 11:19:28 【问题描述】:

我正在将 Typescript 中的对象转换为字符串以存储到数据库中。

formData.survey_data = encodeURI(JSON.stringify(formData.survey_data));

输出在浏览器中有效,但打字稿坚持我有一个错误。

类型 'string' 不能分配给类型 'any[]'

这是什么意思?

【问题讨论】:

survey_data的类型是什么? 我将它定义为一个数组,这是我的问题。我将它定义为一个数组并尝试将其设为字符串。 【参考方案1】:
formData.survey_data = encodeURI(JSON.stringify(formData.survey_data));

根据提供的代码,我假设survey_dataany[] 类型。您正在序列化您的对象并尝试将其分配给该属性。 TypeScript 是强类型的,即使 javascript 可能能够处理这种情况,也不允许您这样做。 (因为 JavaScript 不是强类型的,您可以将任何对象分配给任何属性)。

【讨论】:

所以你的意思是因为我事先将它分配给了其他东西,它会因为我尝试重新分配它而引发错误? 代码 formData.survey_data 的某处有一个类/属性定义,它指定它的类型为 any[]。如果你想改变它,你必须找到它。 想通了!我之前将 formData.survey_data 定义为数组而不是字符串。感谢您的帮助! 很高兴我能帮上忙!

以上是关于打字稿并将对象转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

打字稿:将 JSON 对象转换为类/接口对象

将打字稿类转换为对象

在Angular8中将HTTP响应json转换为打字稿对象

如何将对象数组转换为在打字稿中具有动态键的单个对象

将 JSON 对象转换/翻译为打字稿类型/接口的工具?

在打字稿中将 JSON 转换为字符串数组