javascript - 从简单类型创建嵌套 TypeScript 类型

标签 javascript typescript interface

我有一个看起来像这样的模型

export interface LoremIpsum {

propertyA: string;
propertyB: number;

}

从服务器我以这种格式返回数据

{
    "Fields": {
        "propertyA": {
            "value": "something"
        },
        "propertyB": {
            "value": 123
        }
    }
}

这是一种为此创建泛型类型的方法吗?所以我可以以类似 DynamicResponse<LoremIpsum> 的方式使用它?

最佳答案

您需要使用 mapped type迭代泛型类型 T 的所有键。然后,您可以将 T 的每个属性类型映射到 { value: T[K] }

type Fields<T> = {[K in keyof T]: { value: T[K] }};

interface DynamicResponse<T> {
  Fields: Fields<T>
}

Playground

关于javascript - 从简单类型创建嵌套 TypeScript 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57803748/

相关文章:

javascript - Console.log() 和 settimeout(fn, 0)

javascript - 识别 jquery 中的日期格式并将其设置为 jquery datepicker 中的默认值

reactjs - 创建 react 应用程序 + TypeScript + CSS 模块 : Auto-generating type definitions without ejecting from CRA

angular - typescript 错误 : Property 'files' does not exist on type 'HTMLElement'

c# - 如何序列化接口(interface)默认属性?

javascript - 有没有办法在 twitter 嵌入式小部件中更新推文列表时通知?

javascript - JavaScript中同时调用函数和修改变量

angular - Ionic 2/Typescript 构建失败 : Unexpected character '@'

c# - 类型接口(interface) C# 的集合

java - 我应该在哪里实现 ActionListener?