编辑:
我在Github上提出了与此相关的问题: https://github.com/Microsoft/TypeScript/issues/21265
看起来{ ...other: xother }
不是有效的JavaScript或TypeScript代码,甚至不应该编译。
原始问题:
假设以下示例:
const values = { a: "1", b: "2", c: "3", d: "4" };
const { a: va, b: vb, ...other } = values;
为属性a
分配了一个新的变量名va
。
根据TypeScript规范,对于其余属性...other
是否可以做相同的操作?比如:
const { a: va, b: vb, ...other: vother } = values;
我知道它可以工作,我已经进行了测试 (在线测试)。但我找不到它定义的位置。
文档示例中引用属性重命名的部分总是显示“正常”的情况:TypeScript手册-变量声明。规范语法则提到了一个未在规范中描述(或我错过了)的BindingPattern
:TypeScript规范。
我的第一印象是它不是很有用,因为...other
已经是一个自定义变量名。但它起作用。我好奇地想知道它具体是在哪里定义的,或者它只是一个可以工作的特殊情况(我认为不是)。