TypeScript:元组类型到对象类型

2023-12-09

考虑这样的元组:

type MyTuple = [A, B];

where A and B两者都有一个名为key。例如,

interface A = {
  key: 'sandwiches'
}

interface B = {
  key: 'pasta'
}

我想要以下界面:

interface Result {
  sandwiches: A;
  pasta: B;
}

有没有办法动态地做到这一点?

我想,如果这是可以实现的,它可能看起来像这样:

type MapTuple<T> = {
  [K in keyof T]: T[K]["key"]
}

但这行不通。

这个问题是inverse of Typescript:对象类型到数组类型(元组)


这将产生所需的效果。您需要映射元组的所有键属性并提取每个键的元组成员:

type MyTuple = [A, B];

interface A {
  key: 'sandwiches'
}

interface B {
  key: 'pasta'
}


type MapTuple<T extends Array<{ key: string }>> = {
  [K in T[number]['key']]: Extract<T[number], { key : K}>
}

type R = MapTuple<MyTuple>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TypeScript:元组类型到对象类型 的相关文章

随机推荐

  • 为什么 `object.__init__` 不带参数

    为什么不object init take args kwargs作为论据 据我所知 这以一种非常烦人的方式破坏了一些简单的代码 没有任何好处 假设我们要确保所有 init 调用所有父类的 只要每个 init 遵循调用的简单约定super i
  • 文本输入中的最小最大数字 - Jquery/javascript

    我想设置在文本输入中输入的最小和最大允许数字我知道我可以使用范围输入来做到这一点 但在不兼容的浏览器中使用时它仍然有最大和最小吗 如果没有 请为我指出正确的方向 感谢您的阅读 Use jquery 验证器插件 它有一组很好的功能 还有最小最
  • 有向无环图中的最长路径

    如何找到没有权重的 DAG 中的最长路径 我知道如果 DAG 是拓扑排序的 则可以在线性时间内找到从 A 到 B 的最长路径 但我需要找到所有图中的最长路径 有没有比搜索所有顶点对之间的最长路径 这将是 O n 3 更快的方法 这与寻找关键
  • App Engine 对除 root 之外的任何路径抛出 404 Not Found

    我想将我的 App Engine 实现拆分为多个文件 所以我在 app yaml 文件中写道 runtime python27 api version 1 threadsafe true handlers url imageuploader
  • 删除 TFS 2010 中的孤立身份

    我正在将 TFS 2010 安装从一台计算机移动到另一台计算机 我发现可以使用以下命令重新映射身份TFSConfig Identities change命令 但我没有找到删除我不再需要的孤立用户身份的方法 我知道也许我可以把它们留在那里 但
  • java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver错误[重复]

    这个问题在这里已经有答案了 try Class forName sun jdbc odbc JdbcOdbcDriver String cString jdbc odbc Driver Microsoft Access Driver mdb
  • 使用 apache poi 读取 Excel 文件时出现异常

    当我尝试使用 apache poi 读取 Excel 2007 文件 xlsx 文件扩展名时出现问题 InputStream file new FileInputStream C test xlsx gt XSSFWorkbook work
  • 用于会话检查的 Java FilterImplementation

    我使用 JSF Hibernate Spring 创建一个 Web 应用程序 我添加了一个过滤器来检查会话 我的过滤器代码是 public class AdminFilter implements Filter private ArrayL
  • Geb/Selenium 测试挂起加载新页面

    我的 Selenium 测试经常无限期地挂在 CI 上 总是尝试加载新页面driver get 我正在使用 PhantomJS 1 9 8 经过几轮调试 我想我已经将问题追溯到 PhantomJS 中网页加载未完成的问题 Selenium
  • 保存文本文件

    我想将矩阵保存为具有可变文件名的 text 目前我正在使用函数 dlmwrite name matrix 保存文件 这仅适用于预设的文件名 有没有办法让文件名可变 理想的情况是 弹出一个窗口 要求输入要写入的文件名 就像 Uigetfile
  • 如何更改按钮上的波纹背景颜色?

    到目前为止 在 API 中 v3 9 2 我看到提到TouchRippleProps for ButtonBase for https material ui com api button base 我的按钮看起来像
  • 空手道自动设置 Content-Type 标头 [重复]

    这个问题在这里已经有答案了 再会 在我的负面测试用例中 我必须 PUT 一个没有 Content Type 标头的请求 以便匹配所需的 4xx 状态代码 问题是空手道会自动设置适当的内容类型 例如 当我传递 作为请求时 它设置 applic
  • 导入 matplotlib.pyplot as plt 失败并出现有关 python-tk 的错误

    我尝试导入 matplotlib pyplot 但是收到与未安装 python tk 相关的错误 它似乎已安装 但我似乎仍然收到错误 任何帮助都会得到帮助 有关更多信息 输出如下 非常感谢 ipython Python 2 7 7 defa
  • 用python计算图像径向平均值的最佳方法是什么?

    我有一张方形图像 例如这个 我想计算从位置 0 0 开始的每个半径的图像的一维平均值 我已经编写了一些代码来执行此操作 但首先即使对于小图像 它也非常慢 其次我发现其背后的想法也存在一些问题 代码在这里 import matplotlib
  • sbt 更新时未检测到 Java 安装

    您好 我尝试在 cygwin 中运行 sbt update 命令 但我收到错误 未检测到 java 安装 即使我已经安装了 java 我的 java 存在于 C Program Files Java 中 我的 sbt 安装在 C Progr
  • Powershell - 如果不工作(Windows 服务检查)

    我正在尝试构建自己的脚本来检查一些 Windows 服务 状态和启动模式 并且我在 IF 上遇到问题 例如 即使服务处于 正在运行 状态 它也永远不会运行 IF 内的代码 让我在下面分享我的代码 我是 powershell 的新手 所以要温
  • 如何从控制台在 azure AD 应用程序中设置 oauth2AllowIdTokenImplicitFlow?

    有没有办法通过 Azure CLI 或 Azure PowerShell 更改 azure AD 应用程序中的属性 oauth2AllowIdTokenImplicitFlow 如果您只需要检查 IdToken 您可能需要使用该属性 Oau
  • Xamarin Android 中的 java.lang.NoClassDefFoundError:android.support.v7.app.AppCompatDelegateImplV14

    自从支持库更新以来 突然开始收到此错误 这会导致应用程序在启动时崩溃 即使一切都构建良好 我尝试使用较低版本的软件包 这给了我同样的错误 我尝试完全重新安装 Xamarin 和 Android SDK 并最终创建一个使用 AppCompat
  • iPhone 开发 - 在 init 或 viewDidLoad 中创建数组

    在我的 UIViewController 子类中 我应该在 init 或 viewDidLoad 中初始化 UIPickerView 的数据 NSArray 吗 为什么 谢谢 我会调用它viewDidLoad因为视图可以多次加载 也可以卸载
  • TypeScript:元组类型到对象类型

    考虑这样的元组 type MyTuple A B where A and B两者都有一个名为key 例如 interface A key sandwiches interface B key pasta 我想要以下界面 interface