typescript - TypeScript 对象中缺少属性,但在记录时可见
问题描述
我是 TypeScript 的新手,遇到了一个我无法解决的问题。
我有一种将一个对象转换为另一个对象的方法:
static fromPreload(preloadPackage: PreloadPackage, context: Context): PackageDocument {
context.log(`PreloadPackage:\n ${JSON.stringify(preloadPackage, null, '\t')}`)
let document: PackageDocument = new PackageDocument()
context.log(`PreloadPackage dimensions:\n ${JSON.stringify(preloadPackage.dimensions, null, '\t')}`)
document.courier_packageId = preloadPackage.packageId
document.dimensions = preloadPackage.dimensions
document.weight = preloadPackage.weight
context.log(`PreloadPackage weight: ${preloadPackage.weight}`)
context.log(`PackageDocument weight: ${document.weight}`)
context.log(`PackageDocument:\n ${JSON.stringify(document, null, '\t')}`)
return document
}
完成此转换后,转换后的对象会丢失重量。这是运行此方法的输出:
PreloadPackage:
{
"packageId": "courierPackageId2",
"weight:": 1000,
"dimensions": {
"length": 100,
"width": 100,
"height": 100
}
}
PreloadPackage dimensions:
{
"length": 100,
"width": 100,
"height": 100
}
PreloadPackage weight: undefined
PackageDocument weight: undefined
PackageDocument:
{
"courier_packageId": "courierPackageId2",
"dimensions": {
"length": 100,
"width": 100,
"height": 100
}
}
因此,我的方法接收到正确的数据,并且在我重新映射后,除了权重属性之外,一切都存在。
我不知道为什么会这样,任何帮助将不胜感激。
解决方案
如果您注意 Typescript 报告的错误,您会看到
Property 'weight' does not exist on type 'PreloadPackage'. Did you mean 'weight:'?(2551)
注意名称中的冒号,而不是后面的冒号。
错别字很正常。但是忽略来自 Typescript 编译器的错误消息不是。请注意。
推荐阅读
- php - Laravel 关系没有加载到资源中?
- c# - 按下载次数和上次更新对 Nuget 搜索结果进行排序
- spring-boot - Spring Batch FlatFileItemWriter - 处理后删除临时文件
- python - 如何将 Caffe 输出功能设置为 int?
- excel - VBA 工作代码突然给出运行时错误 91 - 与 XMLHTTP 相关
- python - Python:创建一个比较 2 个数组并在 2 个数组之间插入较大元素的函数
- html - 无法设置秒值为 0
- python - 激活 conda 环境时报错
- reactjs - 使用 HOC 反应路由器渲染方法
- github - 使用查询字符串预填充 github 评论表单