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

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.

主站蜘蛛池模板: 迁西县| 资阳市| 香河县| 吴桥县| 四会市| 盐津县| 门源| 宁城县| 综艺| 通渭县| 乌拉特后旗| 渑池县| 湘潭市| 莒南县| 丰都县| 邛崃市| 兴城市| 静宁县| 威信县| 建湖县| 凌源市| 连南| 罗江县| 榆社县| 曲麻莱县| 梅河口市| 普陀区| 平遥县| 六盘水市| 资兴市| 甘肃省| 桐柏县| 赤城县| 罗甸县| 鱼台县| 高淳县| 阳东县| 灵石县| 河津市| 望江县| 洛隆县|