用typescript初始化字典

用typescript初始化字典,typescript,Typescript,我想在typescript中定义一个对象,它有一个名为property的字段 我想减少行数,改为这样写 let request: Input = { documents :[ { properties: { "name" : "ABC", "description" : "PQR" } }] } 我怎样才能做

我想在typescript中定义一个对象,它有一个名为property的字段

我想减少行数,改为这样写

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'])