typescript const x = [... this.x]

时间:2017-10-20 16:33:10

标签: javascript typescript syntax

我有一些继承的打字稿代码看起来像这样(在函数内部):

const Statuses = [...this.Statuses]

this.Statuses是指在同一.ts文件中定义的状态代码数组(定义为Statuses = status [];)。在上面的行之后,代码在状态

上运行

我试图了解[... this.var]语法的作用?为什么不简单地参考这一点。首先是对象?

是的,我是javascript / typescript ....

的新手

提前致谢。

3 个答案:

答案 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)将保持不变,那么感谢您。