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

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.

主站蜘蛛池模板: 郎溪县| 晋中市| 滦南县| 民勤县| 北海市| 汽车| 棋牌| 益阳市| 定兴县| 武鸣县| 庐江县| 建水县| 富锦市| 历史| 海安县| 德昌县| 淳化县| 梅河口市| 封开县| 霍城县| 敖汉旗| 壶关县| 鄂伦春自治旗| 信宜市| 道孚县| 会泽县| 洛扎县| 民丰县| 赤壁市| 建始县| 闻喜县| 罗平县| 繁昌县| 海门市| 彰武县| 三穗县| 屏山县| 南昌县| 奉化市| 安康市| 咸宁市|