用typescript初始化字典
我想在typescript中定义一个对象,它有一个名为property的字段 我想减少行数,改为这样写用typescript初始化字典,typescript,Typescript,我想在typescript中定义一个对象,它有一个名为property的字段 我想减少行数,改为这样写 let request: Input = { documents :[ { properties: { "name" : "ABC", "description" : "PQR" } }] } 我怎样才能做
let request: Input = {
documents :[
{
properties:
{
"name" : "ABC",
"description" : "PQR"
}
}]
}
我怎样才能做到这一点呢?您可以定义为
export interface Input {
documents: any; // or object
}
export interface DocumentInput {
properties?: any; // or object
}
与一起使用
let request: Input = {
documents :[
{
properties:
{
"name" : "ABC",
"description" : "PQR"
}
}]
}
console.log(request.documents[0].properties.name)
//or
console.log(request.documents[0].properties['name'])
这也是一个解决方案,但我可以使用object作为数据类型并执行相同的操作吗?除非与非类型的第三方JS交互,否则任何类型都是一个坏消息。因为简单而放弃类型安全性从来都不是一个好主意。那么出了什么问题?我只是直接剪切粘贴了你的代码,效果很好:@spender如果我这样做的话,我会得到这个错误。类型“string”不可分配给类型“object”。TS2322使用Object而不是Object可能有帮助吗;对不起,忘了提到排错。用Object代替Object确实有帮助。谢谢@挥霍
export interface Input {
documents: any; // or object
}
export interface DocumentInput {
properties?: any; // or object
}
let request: Input = {
documents :[
{
properties:
{
"name" : "ABC",
"description" : "PQR"
}
}]
}
console.log(request.documents[0].properties.name)
//or
console.log(request.documents[0].properties['name'])