angular - 我可以像这样声明基于 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;
}
解决方案
尝试这个:
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
推荐阅读
- python - 使用 docker-compose 从另一个容器连接到 PostgreSQL 容器
- javascript - 在 JavaScript 中对集合使用 forEach 时出错
- typescript - 如何在玩笑中窥探相同的方法但有两个不同的参数?
- mclust - 从 mclust() 模型摘要中提取 BIC 值
- wpf - WPF MVVM DataGrid 在运行时填充查询
- javascript - 开发 chrome 扩展时遇到错误
- python - 如何在 Python 中的两个字典之间获取多个共享项?
- node.js - 使用 Winston 使用 Google 云日志记录时的性能问题
- sql-server - Docker mcr.microsoft.com/mssql-tools,SQLCMD 无法恢复数据库
- docker - docker compose 中的 mysql