TypeScript 函数

  • 一、常规函数定义和函数调用方式
  • 二、带参数函数定义和调用方式
  • 三、匿名函数定义和调用方式
  • 四、构造函数定义和调用方式
  • 五、递归函数定义和调用方式
  • 六、箭头函数定义和调用方式
  • 六、函数重载定义和调用方式

一、常规函数定义和函数调用方式

1.常规函数定义调用

function hello() {console.log("hello TS")
}
hello(); //hello TS

2.带返回值函数

function hello():string { return "Hello World"
}
hello();

二、带参数函数定义和调用方式

1.带固定参数函数

function add(a: number, b: number): number {let c:number = a+b;return c
}

2.带可选参数和默认参数函数

function oneFun(a: string, b?: string) {if(b) {console.log(a + b)} else {console.log(a)}
}
oneFun("hello") //hello
oneFun("hello", "TS"); //helloT

注 : \color{red}{注:} 注: 常规情况下传入参数数量要和函数定义参数相同,"?"代表该参数为可选(即传入或者不传皆可)
3.默认参数

function defaultFun(a:number,b:number = 1) {console.log(a+b);
}
defaultFun(1) //2
defaultFun(1,2) //3

在调用函数时,如果不传入该参数的值,则使用默认参数
4.剩余参数函数

function otherFun(a: string, ...otherItem: string[]) {console.log(a + " " + otherItem.join(" "))
}
otherFun("hello","T","S")//hello T S

当函数传入参数数量未知时,我们可以使用剩余参数来定义

三、匿名函数定义和调用方式

1.匿名函数及其自调用

//匿名函数
let noName = function(a:number,b:number) { console.log(a+b);
};
noName(1,2); //3
// 自调用
(function() { console.log("hello ts");
})()  //hello ts

四、构造函数定义和调用方式

let creatFun = new Function("a", "b", "console.log(a+b)")
creatFun(1,2) //3

注 : \color{red}{注:} 注: let creatFun = new Function ([arg1[, arg2[, ...argN]],] funBody)
funBody是一个含有包括函数定义的 JavaScript 语句的字符串,其前面为该函数的参数列表

五、递归函数定义和调用方式

递归函数即在该函数内调用该函数,比如解决1—N的和可以通过递归解决

function myFun(a:number):number {if (a <= 1) {         // 停止执行return 1; } else {     return (a + myFun(a - 1));     // 调用自身}
}
let oneSum =  myFun(100);
console.log(oneSum)//5050;

六、箭头函数定义和调用方式

1.无参数

let arrowFun = () => {console.log("hello Ts")
}
arrowFun(); //hello Ts

2.单个参数

let arrowFunTwo = (a:number) => {console.log(a)
}
arrowFunTwo(2); //2

当参数只有一个时也可以去掉括号

let arrowFunTwo = a => {console.log(a)
}
arrowFunTwo(2); //2

3.多个参数

let arrowFunThree = (a:number,b:number) => {console.log(a+b)
}
arrowFunThree(1,5); //6

六、函数重载定义和调用方式

当我们想让一个函数有多个功能时可以使用函数重载

let allStr:any[] = ["H","e","l","l","o",1];
//定义重载
function differentFun(a:string):string;
function differentFun(a:string[]):string;
//实现
function differentFun(oneArg: unknown):unknown {if (typeof oneArg === 'string') {return oneArg;} else if (Array.isArray(oneArg)) {return oneArg.join("");}throw new Error('false value');
}
console.log(differentFun(allStr)); //Hello1
console.log(differentFun(allStr[0])); //H
console.log(differentFun(allStr[5])); //Error: false value

有问题可以在下面评论,我会为大家解答。

TypeScript 函数以及简单使用和操作相关推荐

  1. TypeScript - 函数

    前言 本文主要记录下 TypeScript 中的函数,日常学习总结篇. 在 JavaScript 中,函数是构建应用的一块基石,我们可以使用函数抽离可复用的逻辑.抽象模型.封装过程.在 TypeScr ...

  2. map函数的简单用法。

    在这里感谢新浪博客的daylive的博文: Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作! 1. map ...

  3. c# typescript_在任何IDE中从C#,Java或Python代码获取TypeScript接口的简单方法

    c# typescript by Leonardo Carreiro 莱昂纳多·卡雷罗(Leonardo Carreiro) 在任何IDE中从C#,Java或Python代码获取TypeScript接 ...

  4. php打开文件读写函数,php中常用文件操作读写函数介绍

    本文章介绍了下面几个常用的文件操作函数 file_get_contents 读取整个文件内容 fopen 创建和打开文件 fclose 关闭文件 fgets 读取文件一行内容 file_exists ...

  5. matlab中ode45函数的用法_带你理解Excel中COUNTIF函数的简单用法

    每天5分钟,每天学一点. COUNTIF函数是Excel中最常用的统计函数之一,它的作用主要是用于根据特定条件对数据进行统计.假如,你想统计一下本周总共做了几次健身/瑜伽,或者统计上了几次培训课,那么 ...

  6. php get验证,PHP+Ajax简单get验证操作示例

    本文实例讲述了PHP+Ajax简单get验证操作.分享给大家供大家参考,具体如下: 1.显示页面代码 index.html XMLHttpRequest独对象使用实例 //第一步创建ajax引擎对象 ...

  7. ffplay.c函数结构简单分析(画图)

    最近重温了一下FFplay的源代码.FFplay是FFmpeg项目提供的播放器示例.尽管FFplay只是一个简单的播放器示例,它的源代码的量也是不少的.之前看代码,主要是集中于某一个"点&q ...

  8. 关于C语言函数的简单理解

    关于C语言函数的简单理解 C语言中的函数 在C语言中,函数是构成程序的基本模块.程序的执行从main()函数的入口开始,到main()函数的出口结束,中间循环.往复.迭代的调用一个有一个函数.每个函数 ...

  9. linux0.11内存memory.c一些函数的简单的注释(一)

    memory.c中一些函数自己的一些自己看法,有错大家指出来.或者是更好的解释可以个提出来呀.有什么问题也可以向rentiansheng@163.com发邮件, 谢谢大家. 1. 设置页表.页目录的位 ...

最新文章

  1. 据我所知,这是第一个完整实现运动分割、动态目标追踪等的「开源」动态SLAM系统!...
  2. 服务器负载均衡(1)
  3. 汤家凤高等数学基础手写笔记-一元微分学的应用
  4. Eclipse+Web3j开发以太坊应用
  5. 你知道面试官是如何刷人的吗
  6. 如何修复Mac清倒废纸篓提示“操作无法完成,因为该项目正在使用中”
  7. Android学习—7种形式的Android Dialog使用举例
  8. 55. GridPanel中getSelectionModel详解
  9. python水仙花数的代码_Python水仙花数的编程代码写法
  10. H5前端实现微信分享(处理二次分享问题)
  11. 从弗雷格的《概念文字》到模态逻辑的产生与发展
  12. 服务器svn自动同步,svn主备服务器实时同步
  13. 小说阅读器,记录上次阅读位子。
  14. idea设置java运行内存,IntelliJ IDEA 修改内存大小,使得idea运行更流畅(二)
  15. c语言省二级编程证书,c语言二级考试
  16. hibernate一对一主键关联映射(单向关联Person-----IdCard)
  17. UML中关系(4+4)
  18. 为什么要有不同的参考文献格式?
  19. 一篇文章普及各种ios基本知识
  20. 读刘未鹏老大《你应当如何学习C++(以及编程)》

热门文章

  1. 【Java】接口的讲解与使用,你还有要补充的嘛?
  2. 计算机图形学课件pdf版
  3. 易观落子长沙成立大数据研发中心 聚力中南IT产业
  4. python中prompt的意思_python中的prompt是什么意思,怎么用
  5. 数据结构经典算法(4)三色旗
  6. 记一次使用compiz失败及抢救过程
  7. 计算机的CPU型号 内存容量和硬盘容量,什么是LGA,PGA,BGA类型的CPU封装?CPU主频/内存容量/硬盘容量怎么看?...
  8. 《动手学深度学习》手动导入数据集产生错误的解决方法
  9. 使用坚果云的情况下pc版zotero和ipad版zotero同步及文献下载
  10. 中小微企业抉择全网营销平台公司合作的6大要点