我有一些继承的打字稿代码看起来像这样(在函数内部):
const Statuses = [...this.Statuses]
this.Statuses是指在同一.ts文件中定义的状态代码数组(定义为Statuses = status [];)。在上面的行之后,代码在状态
上运行我试图了解[... this.var]语法的作用?为什么不简单地参考这一点。首先是对象?
是的,我是javascript / typescript ....
的新手提前致谢。
答案 0 :(得分:3)
它是“spread notation”,它将this.Statuses
(必须是某种Iterable,例如数组)展开为离散元素。在这种情况下,那些形成一个新数组(因为...this.Statuses
在[]
内,这会创建一个数组。)
因此,如果this.Statuses
是一个数组,那么它在功能上与const Statuses = this.Statuses.slice();
(或以下)相同。
如果this.Statuses
是另一种Iterable,它在功能上与const Statuses = Array.from(this.Statuses);
相同。
答案 1 :(得分:1)
复制阵列是一种美学上令人愉悦的方式,以避免对原始数据进行突变。它使用扩展语法,如其他答案中所述。
const a = [ 1 ]
const b = a
const c = [...a]
b.push(2)
c.push(3)
console.log(` original: ${a}`)
console.log(`reference: ${b}`)
console.log(` copy: ${c}`)

答案 2 :(得分:1)
这是spread syntax。它允许将项目从一个数组(或对象)复制到另一个数组。在您的情况下,它用于制作Statuses
的浅表副本以避免原始数组突变。如果您将新项目推送到this.Statuses
原始数组(app/Http/Middleware/VerifyCsrfToken.php
)将保持不变,那么感谢您。