官术网_书友最值得收藏!

Tuple function parameters

Tuple function parameters in TypeScript 3 allow us to create strongly-typed rest parameters.

Time for an example:

  1. When we first looked at rest parameters, we created a pure JavaScript version of logScores that collected an unlimited amount of arguments in a scores variable:
function logScores(...scores) {
console.log(scores);
}
  1. In TypeScript 3, we can now make this example strongly-typed with a tuple rest parameter. Let's give this a try in the TypeScript playground:
function logScores(...scores: [...number[]]) {
console.log(scores);
}
  1. Let's call our function with some scores:
logScores(50, 85, 75);

We don't get a compiler error, and if we run the program, we get an array containing 50, 85, 75 output in the console.

We can create an enhanced version of our function that uses the Scores type from the Open-ended tuples section.

  1. The function will take in the name, as well as an unlimited set of scores:
type Scores = [string, ...number[]];

function logNameAndScores(...scores: Scores) {
console.log(scores);
}
  1. Let's try to call our function with some scores from Sally:
logNameAndScores("Sally", 60, 70, 75, 70);

If we run the program, Sally and her array of scores will be output to the console.

主站蜘蛛池模板: 四子王旗| 社旗县| 汽车| 三河市| 郴州市| 万全县| 彭泽县| 永修县| 临江市| 兴文县| 航空| 根河市| 区。| 江津市| 富民县| 碌曲县| 额济纳旗| 天全县| 永和县| 巴塘县| 楚雄市| 扎鲁特旗| 庆云县| 息烽县| 舞阳县| 元阳县| 白玉县| 天等县| 平江县| 眉山市| 辽阳市| 久治县| 湖口县| 台湾省| 大新县| 五家渠市| 广州市| 临桂县| 长治县| 富民县| 台湾省|