定义函数类型(规定函数参数及函数返回值的类型,若函数没有返回值,则返回类型为null)

function add(x: number, y: number): number {
return x + y
}

推断类型(ts自动识别类型(按上下文归类))

function add(x: number, y: number) {
return x + y
}
//ts会自动识别出返回类型为number

可选参数,默认参数,剩余参数

  • 可选参数(参数名旁使用 ?实现可选参数的功能,可选参数放在必填参数之后)
function buildName(firstName: string, lastName?: string) {
if (lastName)
return firstName + " " + lastName;
else
return firstName;
} let result1 = buildName("Bob"); // Bob
let result3 = buildName("Bob", "Adams"); // Bob Adams
  • 默认参数(默认参数可传值也可不传,一般默认参数在必须参数之后,但也可以定义在默认参数之前,但此时必须明确传入undefined以获取默认值)
function buildName(firstName: string, lastName: string = "Smith") {
return firstName + " " + lastName;
} let result1 = buildName("Bob"); // Bob Smith
let result3 = buildName("Bob", "Adams"); // Bob Adams
function buildName(firstName: string = "Mr", lastName: string ) {
return firstName + " " + lastName;
} let result1 = buildName("Bob","Adams"); // Bob Adams
let result2 = buildName("Bob"); //error: Expected 2 arguments, but got 1.
let result3 = buildName(undefined,"Smith") //Mr Smith
  • 剩余参数(当参数个数不确定时)
function buildName(firstName: string, ...restOfName: string[]) {
return firstName + " " + restOfName.join(" ");
} let employeeName = buildName("Joseph", "Samuel", "Lucas", "MacKinzie");
console.log(employeeName) //Joseph Samuel Lucas MacKinzie

this和箭头函数(传统函数的this作用域是在函数调用时确定,但箭头函数的this作用域在创建时就已经确定)

  • 传统函数
let myobj = {
person:["Bob","Fred","Smith"],
myFn:function(){
return this.person
}
} let test = myobj.myFn;
console.log(test()) //undefined
  • 箭头函数
let myobj = {
person: ["Bob", "Fred", "Smith"],
myFn: function () {
return () => {
return this.person
}
}
} let test = myobj.myFn();
console.log(test()) //[ 'Bob', 'Fred', 'Smith' ]

最新文章

  1. C:Wordpress自定义文章类型(图视频)
  2. C#利用摄像头拍照功能实现
  3. ELb表达式
  4. 【BZOJ】1002: [FJOI2007]轮状病毒(DP+规律+高精度)
  5. Linux下Hadoop的简单安装
  6. 第一个java程序(hdu 1001)
  7. DINOR闪存知识
  8. VS2010 ,工程文件减肥
  9. 伪分布重新格式化hdfs
  10. Android L(5.0)源码之开放的图形库接口——OpenGL ES
  11. IOS 中openGL使用(使用基准图快速制作滤镜)
  12. ASP.NET Core:使用Dapper和SwaggerUI来丰富你的系统框架
  13. Winform调用WebKitBrowser,基于chrome内核WebKit的浏览器控件
  14. 1>MSBUILD : cordova-build error BLD401: 错误: BLD00401: 找不到模块“C:\Users\z-pc\AppData\Roaming\npm\node_modules\vs-tac\app.js”。请转到“工具”-->“选项”-->“Apache Cordova 工具”-->“Cordova 工具”-->“清除 Cordova 缓存”,然后尝试重新生成
  15. Windows as a Service(4)——使用Intune管理Windows10更新
  16. Android简易实战教程--第八话《短信备份~一》
  17. NetCore+MySql+EF 数据库生成实体模型
  18. 微信小程序客服消息新增临时素材接口java实现
  19. HDU - 1061-快速幂签到题
  20. 更改 centos 7的源为 阿里源

热门文章

  1. 感知器(Perception)
  2. Jquery定义对象( 闭包)
  3. (3)mac下"-bash: mysql: command not found"解决方案
  4. CentOS iSCSI服务器搭建------Target篇
  5. UDP标准模型
  6. LeetCode:有效三角形的个数【611】
  7. python neo4j
  8. MD5加密“破解”在.NET平台实现最基本的理解
  9. Java多线程系列 JUC线程池02 线程池原理解析(一)
  10. python 3 json 序列化