一、函数
概念:为了解决某个问题而封装的可复用的代码块。
定义:函数头 + 函数体
function welcome(): void { console.log('Hello, world.') } function add(a: number, b: number): number { let r: number = a + b return r }
调用:函数名([参数列表])
welcome() // 调用函数welcome() 输出 Hello, world. welcome() // 重复使用 let z: number = add(1, 2) // 调用函数add() 传入(1, 2)形参 用z接收返回接果 console.log(z) // 3
二、形参列表
形参定义:([变量1: 类型[, 变量2: 类型[…]]])
// 可选参数 function getName(firstName: string, lastName ? : string) { if (lastName) { return `${firstName}-${lastName}` } else { return firstName } } let name1 = getName('Lucy') // 第二个形参可选参数,可以传值也可以不传值 let name2 = getName('Lucy', 'Lee') // 默认参数 function discount(price: number, rate: number = 0.8) { let result: number = price * rate return result } let result1 = discount(999) // 第二个形参为默认值参数,不传值时使用默认值 let result2 = discount(999, 0.6) // 传值时 rate = 0.6 // 剩余参数 function createInfo(name: string, age: number, ...rest: string[]) { let info = `${name}-${age}-${rest.join('-')}` } let info1 = createInfo('Lucy', 18, 'Female') // Lucy-18-Female let info2 = createInfo('Lucy', 18, 'Shenzhen', 'Pink') // Lucy-18-Shenzhen-Pink
三、匿名函数
// 无函数名,为了使用将定义赋值给变量msg let msg = function() { return 'Hello, world.' } console.log(msg())
四、箭头函数(Lambda函数)
([形参列表]) => { // 函数体 return [返回值] // 默认返回undefined } // 采用箭头来定义函数,同样用变量sub来接收 let sub = (x: number, y: number) => { return x - y } let z = sub(100, 25) console.log(z) // 75
五、函数重载
形参列表不同,参数类型不同或参数个数不同
// 形参列表不同,参数类型不同或参数个数不同 function show(num1: number, num2: number): void { let result: number = num1 + num2 console.log(result) } function show(str1: string, str2: string) { let result: string = str1 + '-' +str2 console.log(result) } show(123, 456) // 579 show('123', '456') // 123-456
六、函数递归
直接或间接调用自己,必定要有出口
// 直接或间接调用自己,必定要有出口 function Fibonacci(n: number): number { if (n <= 1) return 1 return Fibonacci(n– 1) + Fibonacci(n - 2) } let result = Fibonacci(6) console.log(result) // 13
到此这篇typescript 函数接口_typescript有必要学吗的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!优秀的判断力来自经验,但经验来自于错误的判断。——Fred Brooks
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/typescriptbc/1155.html