let result1 = buildName("Bob"); // works correctly now let result2 = buildName("Bob", "Adams", "Sr."); // error, too many parameters let result3 = buildName("Bob", "Adams"); // ah, just right
let result1 = buildName("Bob"); // 错误,少了个参数 let result2 = buildName("Bob", "Adams", "Sr."); // 错误,多了个参数 let result3 = buildName("Bob", "Adams"); // Bob Adams let result4 = buildName(undefined, "Adams"); // Will Adams
TS函数 — 设置剩余参数
1 2 3 4 5 6 7 8 9 10 11
1. 使用的场景:同时操作多个参数,或者在不确定有多少个参数的时候 2. 对es6中的'...' 简单讲解: var a = [1,2,3] var b = [...a] console.log(b) // [1, 2, 3] // 对象解构 var aObj = {'a':1} var bObj2 = {...aObj,"b":2} console.log(bObj2 ) // {a: 1, b: 2} 4. 在'ts' 中也是'...'但需要定义数组类型参数' ...args: number[]' 5. 需要注意的是,剩余参数必须接在必需参数最后面。
functionreverse(x: number | string): number | string{ if (typeof x === 'number') { returnNumber(x.toString().split('').reverse().join('')); } elseif (typeof x === 'string') { return x.split('').reverse().join(''); } }
用重载定义多个 reverse 的函数类型
1 2 3 4 5 6 7 8 9
functionreverse(x: number): number; functionreverse(x: string): string; functionreverse(x: number | string): number | string{ if (typeof x === 'number') { returnNumber(x.toString().split('').reverse().join('')); } elseif (typeof x === 'string') { return x.split('').reverse().join(''); } }