TypeScript 使用三个点号表示的 Rest 参数语法和 spread syntax
生活随笔
收集整理的這篇文章主要介紹了
TypeScript 使用三个点号表示的 Rest 参数语法和 spread syntax
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
官方鏈接
除了使用可選參數(shù)或重載來創(chuàng)建可以接受各種固定參數(shù)計(jì)數(shù)的函數(shù)之外,我們還可以使用剩余參數(shù)定義具有無限數(shù)量參數(shù)的函數(shù)。rest 參數(shù)出現(xiàn)在所有其他參數(shù)之后,并使用 … 語法:
看個例子:
function multiply(n: number, ...m: number[]) {return m.map((x) => n * x); }function multiplyArray(n: number, m: number[]) {return m.map((x) => n * x); }const a = multiply(10, 1, 2, 3, 4); console.log(a);const b = multiply(10, [1,2,3,4]); console.log(b);const c = multiplyArray(10, [1,2,3,4]); console.log(c);如果需求是允許傳入多個數(shù)組,該怎么寫?
type JerryArray = number[];function multiply(n: number, ...m: JerryArray[]) {return m.map( (stillArray) => stillArray.map((x) => n * x )); }const b = multiply(10, [1,2,3,4], [5,6,7,8]); console.log(b);注意:rest parameter 的類型,必須為數(shù)組類型。
在 TypeScript 中,這些參數(shù)上的類型注解是隱式的 any[] 而不是 any,并且給出的任何類型注解都必須是 Array<T> 或 T[] 的形式,或者是元組類型。如果把三個點(diǎn)去掉,語法錯誤,因?yàn)閿?shù)組的 push 方法,輸入?yún)?shù)不能是數(shù)組:
而應(yīng)該是 number 的序列:
把 push 的輸入?yún)?shù)從數(shù)組,改成 4,5,6,7這種 number 序列就能夠正常工作了:
spread 操作符的結(jié)果不能直接賦給一個變量,必須用數(shù)組包一層。
更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的TypeScript 使用三个点号表示的 Rest 参数语法和 spread syntax的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Webots软件中常用的函数
- 下一篇: 沪惠保怎么理赔 怎么理赔沪惠保