ts学习笔记三:函数的使用

// 函数  对函数增加类型   对函数的参数进行类型校验 对函数的返回值进行类型检验,也可以对函数本身来校验

// 考虑函数的参数和返回值   function关键字 | 表达式来声明

// 函数关键字 写完后会对当前函数 自动推断类型
function sum1(x: number, y: string): string { // 函数 括号后面的是返回值类型
    return x + y;
}

// 1.可以自动根据当前等号右边的内容 推断左边的类型
// 2.我们可以指定类型 赋予一个可以兼容这个类型的函数
// 3.函数会自动推倒返回值类型
type IFn = (a: number, b: number) => number
const sum2 = (x: number, y: number) => { // 我发现这个函数兼容指定的类型 即可赋值
    return x + y
}
sum2(1, 2);

// 三种方式都有使用

// js里面支持的方法全部支持

// ? 表示参数可以传递或者不传递,但是y的类型 可以是number | undefined
// 默认值用 = 号
// 可以使用剩余运算符
// js中默认值和可选参数不能一起使用
const sum3 = (x: number, y?: number, ...args: number[]): number => {
    return x + (y as number);
}

sum3(123, 1, 2, 3, 4);

// 函数重载 

// 123 => [1,2,3]
// 'abc' => ['a','b','c']

// number => string[]
// string => number[]

// 一个方法 根据参数的不同实现不同的功能 , ts目的就是根据不同的参数返回类型
function toArray(value:string):string[]
function toArray(value:number):number[]
function toArray(value:string | number) { // 重载方法在真实方法的上面
    if(typeof value == 'string'){
        return value.split('');
    }else{
        return value.toString().split('').map(item=>Number(item));
    }
}
let r = toArray('abc'); 
console.log(r)

// ts 1.为了安全 2.为了有提示 


// 函数的两种方式声明 function (重载)  表达式 (类型确定)

export {}

上一篇:ts笔记-类型兼容性


下一篇:使用ffmpeg拼接视频踩坑记录