我在TypeScript中有以下界面:
export interface Defined {
4475355962119: number[];
4475355962674: number[];
}
我需要根据此界面Defined
创建对象:
let defined = new Defined();
defined['4475355962119'] = [1];
defined['4475355962674'] = [2];
但它对我不起作用!
或者它可能应该是:
export interface Defined {
array(number): number[];
}
我有这个JSON对象,我需要创建JS对象:
"parameters": {
"defined": {
4475355962119: [
9547,
9871
],
4475355962674: [
9829
]
}
}
答案 0 :(得分:1)
让我们从有效的JSON字符串开始:
const data = `{
"parameters": {
"defined": {
"4475355962119": [9547,9871],
"4475355962674": [9829]
}
}
}`;
如果我们想将此表示为接口,则思考过程是保留所有键,并将所有值替换为各自的类型,如下所示:
interface Data {
parameters: {
defined: {
[index: number]: number[];
}
}
}
然后我们可以将数据反序列化为该类型:
const result = <Data>JSON.parse(data);
获得&#34;定义&#34;位:
const defined = result.parameters.defined;
这是一个完整的例子:
const data = `{
"parameters": {
"defined": {
"4475355962119": [9547,9871],
"4475355962674": [9829]
}
}
}`;
interface Data {
parameters: {
defined: {
[index: number]: number[];
}
}
}
const result = <Data>JSON.parse(data);
alert(result.parameters.defined['4475355962674'][0]); // 9829
如果您没有反序列化数据,可以自己创建。类型注释将帮助您创建正确的对象。
const example: Data = {
parameters: {
defined: {
'4475355962674': [0, 2, 3]
}
}
};
example.parameters.defined['4475355962674'][3] = 4;
答案 1 :(得分:0)
尝试以下代码段。
export interface Defined {
4475355962119: number[];
4475355962674: number[];
}
let defined = {} as Defined;
defined['4475355962119'] = [1];
defined['4475355962674'] = [2];
答案 2 :(得分:0)
您可以使用常规对象文字:
let defined = {
4475355962119 : [1],
4475355962674 : [2]
};