【发布时间】:2019-11-27 02:10:44
【问题描述】:
我有一个类似于下面的数据模型的内部表示:
class InternalDataClass {
propOne?: Promise<string>;
propTwo?: Promise<number>;
propThree?: string;
...
}
某些属性是 Promise,因为它们是由异步进程填充的。但是,由于这是一个 Web 服务,我想以有线形式向客户端公开这个结构(显然没有 Promises)。像这样:
class ExternalDataClass {
propOne?: string;
propTwo?: string;
propThree?: string;
}
有没有一种简单的方法可以在 Typescript 中完成此操作而无需重新声明所有内容?这在我的案例中尤其相关,因为,是的,我在这里的插图只有 3 个属性,但您可以想象一个数据类变得越来越大!
谢谢! 时间
【问题讨论】:
-
相关? stackoverflow.com/questions/48944552/… -
UnPromisifiedObject/UnPromisify似乎是个不错的候选人。 -
可以接受
ExternalDataClass作为类型别名而不是类吗? -
@Caramiriel,这有点不同,因为这涉及展开(即完全解析)对象上的任何 Promise
属性。在将数据传输到网络之前,我实际上在我的 Web 服务中做了类似的事情。但我纯粹是在寻找一种方法来定义一种供客户使用的类型。下面的答案完美地做到了!
标签: typescript