Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何基于接口TypeScript创建对象?_Javascript_Typescript_Typescript2.0 - Fatal编程技术网

Javascript 如何基于接口TypeScript创建对象?

Javascript 如何基于接口TypeScript创建对象?,javascript,typescript,typescript2.0,Javascript,Typescript,Typescript2.0,我在TypeScript中有以下界面: export interface Defined { 4475355962119: number[]; 4475355962674: number[]; } 我需要基于此接口创建对象已定义: let defined = new Defined(); defined['4475355962119'] = [1]; defined['4475355962674'] = [2]; 但这对我不起作用 或者它应该是这样的: export inter

我在TypeScript中有以下界面:

export interface Defined {
   4475355962119: number[];
   4475355962674: number[];
}
我需要基于此接口创建对象
已定义

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
      ]
    }
  }

请尝试以下代码段

export interface Defined {
   4475355962119: number[];
   4475355962674: number[];
}


您可以使用常规对象文字:

let defined = {
    4475355962119 : [1],
    4475355962674 : [2]
};

让我们从一个有效的JSON字符串开始:

const data = `{
    "parameters": {
    "defined": {
      "4475355962119": [9547,9871],
      "4475355962674": [9829]
    }
  }
}`;
接口 如果我们想将其表示为一个接口,那么思考过程就是保留所有键,并用它们各自的类型替换任何值,如下所示:

interface Data {
    parameters: {
        defined: {
            [index: number]: number[];
        }
    }
}
然后,我们可以将数据反序列化为该类型:

const result = <Data>JSON.parse(data);
完整示例 下面是一个完整的示例:

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 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;