3.ts中函数的定义

本文探讨了JavaScript和TypeScript中的函数声明、参数传递、无返回值函数、可选参数、默认参数、剩余参数、函数重载等核心概念,并通过实例展示了如何在实际项目中运用这些技术。

(1)函数声明法

function run():string{
    return 'run'
}
​
// 匿名函数
var run2=function():number{
    return 123
}
run2()

(2)ts中定义方法传参

function getInfo(name:string,age:number):string{
    return `${name} ===${age}`
}
getInfo('张三',20)

(3)没有返回值的方法

function run():void {
    console.log('run');   
}
run()

(4)方法的可选参数(可选参数必须配置到参数的最后面!!!!!)

function getInfo(name: string, age?: number): string {
    if (age) {
        return `${name}===${age}`
    } else {
        return `${name}===年龄保密`
    }
}
getInfo('张三', 20)

(5)默认参数

function getInfo(name: string, age: number = 20): string {
    if (age) {
        return `${name}===${age}`
    } else {
        return `${name}===年龄保密`
    }
}
console.log(getInfo('张三')) //张三===20
console.log(getInfo('张三', 30)) //张三===30

(6)剩余参数

function sum(...result: number[]): number {
    var sum = 0
    for (var i = 0; i < result.length; i++) {
        sum += result[i]
    }
    return sum
}
console.log(sum(1, 2, 3, 4, 5))//15

(7)函数重载

es5中出现同名函数时下面的会覆盖上面的,es6中则会重载

function getInfo(name: string): string;
function getInfo(age: number): number;
function getInfo(str: any): any {
    if (typeof str === 'string') {
        return '姓名' + str
    } else {
        return '年龄' + str
    }
}
console.log(getInfo('张三')) //姓名张三
console.log(getInfo(20)) //年龄20
在 TypeScript 中,`interface` 可以用来定义函数和元组。 ### 定义函数 使用 `interface` 定义函数时,需要描述函数的参数和返回值类型。例如: ```typescript interface ISetUser { (name: string, age: number, sayHi: () => void): void; } const setUser: ISetUser = (name: string, age: number, sayHi: () => void) => { // 这里可以编写函数的具体逻辑 console.log(`Setting user: ${name}, age: ${age}`); sayHi(); }; setUser(&#39;lisi&#39;, 30, () => { console.log(&#39;hi, i am lisi&#39;); }); ``` 上述代码中,`ISetUser` 接口定义了一个函数类型,它接受三个参数:`name`(字符串类型)、`age`(数字类型)和 `sayHi`(一个无参数且返回值为 `void` 的函数),并且返回值为 `void`。然后定义了一个 `setUser` 函数,它符合 `ISetUser` 接口的定义 [^4]。 ### 定义元组 虽然 `interface` 不是专门用于定义元组的,元组通常使用 `type` 定义,但在某些情况下也可以用 `interface` 模拟元组。不过这种方式相对复杂,因为元组有固定的长度和每个位置的类型。示例如下: ```typescript interface TupleLike { 0: string; 1: number; length: 2; } const myTuple: TupleLike = [&#39;hello&#39;, 123] as TupleLike; console.log(myTuple[0]); console.log(myTuple[1]); ``` 上述代码中,`TupleLike` 接口定义了一个类似元组的结构,它有两个属性,索引 `0` 是字符串类型,索引 `1` 是数字类型,并且有一个 `length` 属性值为 `2`。然后创建了一个符合该接口的变量 `myTuple` [^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值