javascript - 有什么方法可以使用 Typescript 转换或更改对象的定义吗?

标签 javascript typescript

我有一个 javascript 变量:

var home.modal.data;

在内容屏幕中它包含:

home.modal.data.contentStatusId: number;
home.modal.data.contentTypeId: number;

在考试屏幕中它包含:

home.modal.data.examId: number;
home.modal.data.examStatusId: number;

我正在考虑这样的界面:

interface IModalData {
    contentStatusId: any;
    contentTypeId: any;
    current: any;
    examId: any;
    examStatusId: any;
}

但我认为这是错误的做法,它给我带来了其他问题,因为我需要定义未使用的属性。

有没有其他方法可以声明每个屏幕的 home.modal.data 的组成?如果这个问题听起来令人困惑,我很抱歉,但我确实看到了一些方法 用 <> 做这样的事情括号语法,但现在我找不到任何示例。

我知道一种方法只是让我声明:

var home.modal.data: any

但是有没有更好的办法呢?

最佳答案

这对你有用吗<​​/p>

首先定义如下接口(interface):

interface IExamData{
    examId: number;
    examStatusId: number;
}


interface IContentData{
    contentStatusId: number;
    contentTypeId: number
}

现在,无论何时您需要访问考试屏幕或内容屏幕的数据,具体取决于您可以按以下方式转换的上下文:

在检查屏幕中时:

var examData = <IExamData>home.modal.data;
examData.examId = 666;
examData.examStatusId = 777;

在内容屏幕中时:

var contentData = <IContentData>home.modal.data;
contentData.contenStatusId = 666;
contentData.contentTypeId = 777;

关于javascript - 有什么方法可以使用 Typescript 转换或更改对象的定义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25937698/

相关文章:

javascript - 为什么在 JavaScript 中使用 TypeScript 类需要 `.default` ?

javascript - 无法在基于 jest 和 vue-test-utils 的测试项目中使用 vue.js 的 ES6 模块

javascript - wdContextMenu 获取被点击的元素 id

javascript - Electron -ipcRenderer.send()的SetTimeout

angular - 在 RxJS 中处理错误的正确方法是什么?

typescript - 我可以为 rest 参数传入一个数组吗?

javascript - Socket.io 断开连接功能不起作用

javascript - jQuery/JavaScript 在 OOP 中添加事件触发器

javascript - 在不同的链接上显示不同的文字

javascript - 如何使用 Angular 2 扩展外部 JavaScript 库?