簡體   English   中英

傳播運營商 - TypeScript

[英]Spread Operator - TypeScript

我正在嘗試將數組作為參數傳遞給 Spread 運算符,但出了點問題。

function addThreeNumbers(x:number, y:number, z:number){
  console.log(x+y+z)
}

const args: number[] = [2,6,4]

addThreeNumbers(...args)

就像錯誤所說的那樣:

傳播參數必須具有元組類型或傳遞給 rest 參數。

所以要么使args成為一個元組,例如 with as const這樣它就不會擴大到number[]

const args = [2, 6, 4] as const;

或者將參數改為 rest 參數:

function addThreeNumbers(...args: number[]) {
    console.log(args[0] + args[1] + args[2])
    // or args.reduce((a, b) => a + b, 0)
}

為了 TypeScript 正確預測哪些參數類型將傳播到參數中,您必須將args變量類型更改為元組,如下所示:

const args: [number, number, number] = [2, 6, 4];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM