使用扩展运算符和打字进行解构

2024-03-21

我有这个对象:

const ABCD = {
  a: 1,
  b: 2,
  c: 3,
  d: 4
}

我可以对其进行解构,使用“扩展”运算符收集其余部分,然后输入如下变量:

const {a, b, ...restOfIt}: {a: number, b: number} = ABCD;

但我该如何输入restOfIt在同一条线上?以下全部失败:

 const {a, b, ...restOfIt}: {a: number, b: number, ...restOfIt: any} = ABCD;
 const {a, b, ...restOfIt}: {a: number, b: number, restOfIt: any} = ABCD;

TypeScript 游乐场


您可以使用动态键定义

const {a, b, ...restOfIt}: {a: number, b: number, [key: string]: any} = ABCD;

如果你知道所有类型restOfIt is number,你也可以使用number代替any哪个更好

const {a, b, ...restOfIt}: {a: number, b: number, [key: string]: number} = ABCD;

如果您已经有一个类型restOfIt,您可以使用类型联合

type CD = {
  c: number,
  d: number
}
const {a, b, ...restOfIt}: { a: number, b: number} & CD = ABCD;

操场 https://www.typescriptlang.org/play?#code/MYewdgzgLgBAggIQMIBEYF4YG8BQMYCGAXDAIwA0eMARiQEyX7AkDMjMAJiQCw4C+OHFACeABwCmMVBmxVmMMAFcAttXEAndlwUq16-oNyhIsLAXI0LAOhvrx0APIAzAJJQ+MxKgDcBnEfBobHNLGBsrO0dXdxIRCRAneGQ0TC8UXwF-HGMgswtqa1t7KGc3PhIsQhIlVQ186t0NDwAyKRSknz8Ak2D8woji0pjsKp1azRoG8YsAbQBrcWESaHUASzAAcwBdKb0YD1TkjKA

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

使用扩展运算符和打字进行解构 的相关文章

随机推荐

  • php中while循环的一维数组[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我需要检索 while 循环内的数组
  • 使用zxing时找不到类

    所以我正在开发一个可以扫描二维码的应用程序 我下载了 ZXing 库 使用 apache ant 构建它来获取 core jar 将其放入我的项目文件夹中并将其作为 jar 添加到构建路径中 当我尝试执行以下操作时不 Intent inte
  • 使用 BeautifulSoup 捕获 JavaScript 警报文本

    我正在使用这个 JavaScript 来验证表单
  • 将字符串附加到 Terraform 中列表的每个元素

    我的想法是通过向每个元素附加一个字符串来修改列表的元素 如何才能实现这一目标 我还没有找到任何功能可以让我做到这一点 你有没有尝试过格式列表 https www terraform io docs configuration interpo
  • Java:自动装箱和强制转换之间有什么区别?

    这个问题 https stackoverflow com questions 501412 why does autoboxing make some calls ambiguous in java是关于 为什么自动装箱会使 Java 中的
  • 免费的 C# XML Diff 库或类

    我正在寻找 XML Diff 类或库 我的要求有 开源 输出的对象模型 相当快 对于 4mb XML 我正在尝试使用 MS XML Diff 和修补工具 但我想获取具有 2 个 XML 文件 而不是 HTML 标记 差异的对象列表 UPD
  • Xamarin Android - 没有流程布局?

    我想以流程布局方式显示几个具有动态大小的小部件 但我似乎找不到流程布局 Xamarin for Android 中真的没有 flowlayout 作为框架的一部分吗 不 据我所知 Xamarin Android 中没有 flowlayout
  • 使用 ember 评估车把中的两个条件

    我想知道是否可以做这样的事情 if ClientController Client number PhoneController hasLinesToInstall if Thanks Juanitos 我认为不可能在车把中链接这样的条件
  • 真正的缩放是什么?

    我听说人们说他们已经制作了一个可扩展的 Web 应用程序 真正的缩放是什么 开发人员可以采取哪些措施来使其应用程序具有可扩展性 开发人员在扩展过程中会考虑哪些因素 有关使用 ASP NET 和 SQL Server 扩展 Web 应用程序的
  • 回购协议中的 TWIG 查询生成器

    我尝试将其放入referralentity php public function getTotalReferrals qb this gt createQueryBuilder r qb gt select COUNT r id AS t
  • 将语言名称转换为区域设置代码

    PHP 中是否有规范的方法来执行此操作 Java 问题 区域设置 语言名称到国家 语言代码 https stackoverflow com questions 20518000 locale language name to country
  • Android Studio:多模块项目中外部 JAR 的链接

    我有一个 Android 应用程序 在 Android Studio 上运行 它由 2 个模块组成 有一个低级纯java模块 我们称之为模块A 在它的顶部 有模块 B 它是 Android 应用程序 它依赖于 moduleA 来进行某些处理
  • 使用 PyParsing 解析 Snort 日志

    使用 pyparsing 模块解析 Snort 日志时遇到问题 问题在于分离 Snort 日志 它有多行条目 由空行分隔 并让 pyparsing 将每个条目解析为一个整体块 而不是逐行读取并期望语法适用于每一行 显然 它不是 我尝试将每个
  • 谷歌地图只显示半屏?

    谷歌地图只显示一半的屏幕 我尝试通过调整大小来修复 google maps event trigger map resize 但没有任何运气 有人可以帮忙吗 当它加载时 它只显示一半的屏幕 如下所示 我找啊找啊 没有任何解决办法 funct
  • 使用 AWS CLI 命令添加 SQS 重新驱动策略

    我尝试使用下面的 AWS CLI 命令设置 SQS 的重新驱动策略 但看到与重新驱动 JSON 相关的错误 您能让我知道如何解决这个问题吗 redrive policy RedrivePolicy deadLetterTargetArn d
  • 如何在Android Studio 2020中找到R文件?

    我在这里搜索了如何做到这一点 但我找到了 2015 年的源代码 并且 Android Studio 的布局从那时起就发生了变化 Android Studio 中的 R 文件在哪里 在此输入图像描述 https i stack imgur c
  • 缺少适用于 Windows 的远程 iOS 模拟器选项? [复制]

    这个问题在这里已经有答案了 我一直在使用适用于 Windows 的 Xamarin Remote iOS Simulator 和 Visual Studio Professional 版本 更新到最新版本的 Xamarin for Visu
  • 如何对 ksh 中的变量进行精确的单词匹配?

    我使用以下语法作为 ksh 脚本的一部分来验证该词是否Validation存在于LINE FROM FILE LINE FROM FILE Validation LINE FROM FILE print match Validation 这
  • 反应本机导航给出错误“未定义不是对象”?

    import Platform from react native import Navigation from react native navigation import registerScreens from screens reg
  • 使用扩展运算符和打字进行解构

    我有这个对象 const ABCD a 1 b 2 c 3 d 4 我可以对其进行解构 使用 扩展 运算符收集其余部分 然后输入如下变量 const a b restOfIt a number b number ABCD 但我该如何输入re