【发布时间】:2020-12-15 21:21:03
【问题描述】:
我将定义一个类型,我可以在其中存储来自具有相似响应的各种 API 的响应。
响应看起来像
type TResponse<E> = {
Code: number;
Message: string;
Result: {
[i: string]: Array<E>;
Count: number;
};
Status: string;
}
[i: string] 可以是除Count 之外的任何内容,具体取决于 API 设计,例如,Rows、Values、Logs 等...
现在这给了我一个错误,因为 Count 属性与 [i: string] 冲突。
附:我正在使用打字稿版本 ^3.9.7
【问题讨论】:
-
我可以通过使用
{ [i: string]: Array<E> | number; Count: number; };为Result解决此问题,但不确定这是否是最佳解决方案 -
我认为 TS 编译器不会让你表达你想要的,因为index type definitions 不能与任何对象属性共存。也许将
Count存储为Result的兄弟姐妹? (即ResultCount)
标签: javascript typescript types typescript-generics