{{format('0')}} {{format('359')}} {{format('1563')}}

【TypeScript】函数 [ 编程杂谈 ]

大数据男孩 文章 正文

想做一个技术博客,奈何实力不够
分享

明妃

{{nature("2022-08-14 17:23:20")}}更新

函数

函数的参数返回值是可以定义的类型的

// 命名函数
function fun(x: number, y: number): number {
    return x + y;
}

// 匿名函数
let lo = function (msg: string): void { // viod 表示没有返回值
    console.log('匿名函数')
}

可选参数 & 默认参数

可选参数?关键字

function add(x: number, y: number, flag?: boolean): number {
    if (flag){
        return x + y;
    }else{
        return x - y;
    }
}
console.log(add(5,3,true)); // 8 
console.log(add(5,3)); // 2

默认参数

function add(x: number, y: number = 3, flag?: boolean): number {
    if (flag){
        return x + y;
    }else{
        return x - y;
    }
}
console.log(add(5,3)); // 2
console.log(add(5)); // 2

剩余参数

PythonJava 里叫 不定长参数

function add(x: number, ...args: number[]): number {
    console.log(x, args) // 5  [4, 3, 2, 1]
    args.forEach(num => {
        x += num;
    });
    return x;
}
console.log(add(5, 4, 3, 2, 1)); // 15

函数重载

Java 的重载,是 函数名一样,参数列表不一样,而 TypeScript有点不一样

函数参数定义有类型断言声明重载规范传入参数的类型

// 重载函数声明。相对于 规范传入参数的类型
function add(x: string, y: string): string;
function add(x: number, y: number): number;

function add(x: number | string, y: number | string): number | string {
    if (typeof x === "number" && typeof y === "number") {
        return x + y; // 数字类型 相加
    }
    if (typeof x === "string" && typeof y === "string") {
        return x + ' + ' + y; // 字符串 拼接
    }
}

console.log(add('**', '**')) // ** + **
console.log(add(3, 5)) // 8
评论 0
0
{{userInfo.data?.nickname}}
{{userInfo.data?.email}}
TOP 2
Spark 2.0 单机模式与集群模式 安装

{{nature('2020-01-02 16:47:07')}} {{format('12641')}}人已阅读

TOP 3
Office 2016 Pro Plus 激活

{{nature('2019-12-11 20:43:10')}} {{format('9527')}}人已阅读

TOP 4
Linux上 MySQL 开启远程登陆的两种方法

{{nature('2019-12-26 17:20:52')}} {{format('7573')}}人已阅读

TOP 5
Linux 安装 MySQL 5.7

{{nature('2019-12-26 16:03:55')}} {{format('5017')}}人已阅读

目录

标签云

Javascript TypeScript

一言

# {{hitokoto.data.from || '来自'}} #
{{hitokoto.data.hitokoto || '内容'}}
作者:{{hitokoto.data.from_who || '作者'}}
自定义UI
配色方案

侧边栏