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

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.

主站蜘蛛池模板: 平阴县| 烟台市| 洛川县| 龙里县| 忻州市| 江陵县| 九龙县| 集安市| 麻栗坡县| 正定县| 通州市| 远安县| 海兴县| 宜黄县| 宜黄县| 南康市| 鹿邑县| 安国市| 古交市| 榆中县| 泾川县| 布尔津县| 沙河市| 武强县| 连山| 阿克苏市| 曲水县| 北流市| 蓬莱市| 辽阳市| 越西县| 怀集县| 思南县| 无棣县| 额敏县| 中山市| 临湘市| 出国| 黄石市| 临西县| 望谟县|