首页 > 解决方案 > 我可以像这样声明基于 json 格式的 TypeScript 对象吗?

问题描述

我是一名 java 开发人员,我现在想开发 Angular 6.0,我对打字稿很陌生。现在我有一个来自后端的 json 字符串,如下所示:

{  
   "test1":{  
      "aa":"7/22 – 7/28",
      "bb":"Tues July 24 11:15 - 22:20"
   },
   "test2":{  
      "aa":"7/22 – 7/28",
      "bb":"Tues July 24 11:15 - 22:20"
   }
}

如何声明类对象?

对于java的角度,我会这样声明类,不知道对不对

export class Test{
    public aa: string;
    public bb: string;
}

export class Main{
    public test1: Test;
    public test2: Test;
}

标签: angulartypescript

解决方案


尝试这个:

class test {
  aa: string;
  bb: string;
}

class root {
 [key: string] : test;
}

const t: root = {
  'test2': { aa: 'hello', bb: 'world'},
  'test1': { aa: 'hello', bb: 'world'}
}

这还通过在发现重复键时在编译时引发错误来提供安全性,即:

const t: root = {
  'test2': { aa: 'hello', bb: 'world'},
  'test1': { aa: 'hello', bb: 'world'},
  'test1': { aa: 'hello', bb: 'world'}
}

显示:

重复标识符“test1”。

但是,这可能不适合您展示的 POJO。

在这里试试 TS Playground


推荐阅读