打字稿中的“三个点”是啥意思?

Posted

技术标签:

【中文标题】打字稿中的“三个点”是啥意思?【英文标题】:What does the "three dots" in typescript type mean?打字稿中的“三个点”是什么意思? 【发布时间】:2019-10-24 13:16:52 【问题描述】:

我今天在 Typescript 中遇到了一些问题。

这个类型中的三个点是什么意思?我根本找不到任何可以解释这一点的东西。

知道是 Redux 的 combineReducers 函数返回的类型推断

编辑:我编辑了图片,以便我们看得更清楚。

EDIT2:我在这里添加代码,我正在尝试做这样的事情

let all:  readonly [key: string]: (...args: any) => any  = 
  form,
  metadatas_reducer,
  loader_reducer

const combinedReducer = combineReducers(all)

谢谢。

【问题讨论】:

查看这篇文章codeburst.io/javascript-es6-the-spread-syntax-f5c35525f754希望这会如你所愿地解释 另一个链接:dev.to/sagar/three-dots---in-javascript-26ci 这不是扩展运算符,这是打字稿语法 为什么您的图片在其他文本之上显示文本?这是某种工具提示/弹出窗口吗?如果是这样,你在悬停什么,你知道它的实际类型是什么吗? 那些只是文本省略号,它不会扩展。在 vscode tooltips 中你永远不会看到任何可扩展的。还有其他地方 vscode 显示文本省略号(特别是在类/接口的层次结构深处使用泛型类型时),它只是意味着更多(与打字稿语法无关) 【参考方案1】:

这是 TypeScript 扩展运算符: https://howtodoinjava.com/typescript/spread-operator/

这也可以解构传入的数组和字典,因此您可以通过这样做合并两个字典:

> a = [1,2,3]
[ 1, 2, 3 ]
> b = [4,5,6]
[ 4, 5, 6 ]
> [a,b]
[ [ 1, 2, 3 ], [ 4, 5, 6 ] ]
> [...a,...b]
[ 1, 2, 3, 4, 5, 6 ]

【讨论】:

以上是关于打字稿中的“三个点”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

打字稿中的模块关键字是啥意思?

`undefined!` 在打字稿中是啥意思?

!对象方法后打字稿中的运算符

!对象方法后打字稿中的运算符

如何从打字稿中的标记联合类型中提取类型?

函数定义中的“...args”(三个点)是啥意思?