typeScript中的函数
1.最简单的案例
var getInfo():string{
return "Josie"
};
2.传参案例
var getInfo(name:string):string{
return My name is ${name}
};
调用: getInfo("Jocelyn")
若传可选参数
var getInfo(name:string,age?:number):string{
if(age){
return My name is ${name}, I am ${age} years old
} else{
return My name is ${name}, I am 8 years old
}
调用:getInfo('Jocelyn',12) 或者 getInfo('Jocelyn')
若有默认参数
var getInfo(name:string,age:number=3):string{
return My name is ${name}, I am ${age} years old
}
调用:getInfo('Jocelyn',12) 或者 getInfo('Jocelyn')
传递可替换,不传递,显示默认数据
3.剩余参数案例 三点运算符接收形参传递的值
function sum(...result: number[]): number {
var sum = 0;
for (let i = 0; i < result.length; i++) {
sum += result[i];
}
return sum;
}
调用:sum(1, 3, 5, 6, 8)
若此外还带有特地参数
function sum1(a: number, b: number, ...result: number[]): number {
var sum = a + b; //此处等于固定参数
for (let i = 0; i < result.length; i++) {
sum += result[i];
}
return sum;
}
sum1(1,3,5,6,8) ------a为1,b为 3, ab必须是number
// 函数的重载
// Java中方法的重载:重载是指两个或以上同名函数,但他们的参数不一样,这时会出现函数重载的情况
// typescript中的重载:通过为同一个函数提供多个函数类型定义来试下多种功能的目的。
// ts为了兼容es5及es6重载的写法和java中有区别
// es5中如果出现两个同名的函数,那么第二个函数会替换第一个函数
// ts中的重载
function getInfoA(name: string): string;
function getInfoA(name: number): number;
function getInfoA(str: any): any {
if (typeof str === "string") {
return "i am " + str;
} else {
return "i am " + str + ' years old.'
}
}
console.log(getInfoA('amy')) //结果----i am amy
console.log(getInfoA(22)) //结果----i am 22 years old.
function getInfoB(name: string): string;
function getInfoB(name: string, age: number): string;
function getInfoB(name: any, age?: any): any {
if (age) {
return "i am " + name + ', i am ' + age + ' years old';
} else {
return "i am " + name
}
}
// console.log(getInfoB('amy', 33)) //结果----i am amy, i am 33 years old
// console.log(getInfoB('emily')) //结果----i am emily.
// 结论:同样的方法,传入不同参数,得到不同的结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律