错误:TypeError:在将json数据读取到typescript时无法读取undefined的属性'description'

时间:2017-08-07 16:37:08

标签: json typescript

尝试从Sample Json下面读取description属性时收到以下错误消息。

  

错误:TypeError:无法读取undefined的属性'description'   同时将json数据读取到typescript

import {Age} from "./sample" 
var a:Age;    
console.log(a.description);

Sample.json

{
   "title":"Example Schema",
   "type":"object",
   "properties":{
      "firstName":{
         "type":"string"
      },
      "lastName":{
         "type":"string"
      },
      "age":{
         "description":"Age in years",
         "type":"integer",
         "minimum":0
      },
      "hairColor":{
         "enum":[
            "black",
            "brown",
            "blue"
         ],
         "type":"string"
      }
   },
   "additionalProperties":false,
   "required":[
      "firstName",
      "lastName"
   ]
}

1 个答案:

答案 0 :(得分:0)

这里是工作中的StackBlitz

由于这是Typescript,因此将把json转换为所需的类型。由于sample.json大于注释中列出的Age接口,因此我们将创建一个新的接口,称为PersonSchema。

interface PersonSchema {
  title: string;
  properties: {
    age: Age;
  };
}

现在,我们可以导入json数据。注意:import {Age} from "./sample"不起作用,因为示例文件为json,并且无法导出类型。

import data from './sample.json';

将其投射为所需的类型:

const person = data as PersonSchema;

访问年龄:

const age = person.properties.age;