2019独角兽企业重金招聘Python工程师标准>>>

转载

TypeScript基础入门 - 函数 - 简介

项目实践仓库

https://github.com/durban89/typescript_demo.git
tag: 1.1.6

为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能直接运行看到输出的结果。

npm install -D ts-node

后面自己在练习的时候可以这样使用

npx ts-node 脚本路径

函数

介绍

函数是JavaScript应用程序的基础。 它帮助你实现抽象层,模拟类,信息隐藏和模块。 在TypeScript里,虽然已经支持类,命名空间和模块,但函数仍然是主要的定义 行为的地方。 TypeScript为JavaScript函数添加了额外的功能,让我们可以更容易地使用。说实话我都不想看这块的东西,函数嘛是个写程序的都会写,但是为了追求整体及探索新的知识,没准有意外发现,还是要学习下。

函数

和JavaScript一样,TypeScript函数可以创建有名字的函数和匿名函数。 你可以随意选择适合应用程序的方式,不论是定义一系列API函数还是只使用一次的函数。通过下面的例子可以迅速回想起这两种JavaScript中的函数:

function add(x, y) {return x + y
}let addFunc = function(x, y) { return x + y }

在JavaScript里,函数可以使用函数体外部的变量。 当函数这么做时,我们说它‘捕获’了这些变量。 
至于为什么可以这样做以及其中的利弊超出了本文的范围,但是深刻理解这个机制对学习JavaScript和TypeScript会很有帮助。

let z = 10;
function addTo(x, y) {return x + y + z;
}

函数类型

为函数定义类型
让我们为上面那个函数添加类型

function add(x: number, y:number): number {return x + y;
}let addFunc = function (x: number, y: number): number { return x + y }

我们可以给每个参数添加类型之后再为函数本身添加返回值类型。 TypeScript能够根据返回语句自动推断出返回值类型,因此我们通常省略它。

书写完整函数类型

现在我们已经为函数指定了类型,下面让我们写出函数的完整类型。

let addFunc: (x: number, y:number) => number = function(x: number, y: number): number { return x + y }

函数类型包含两部分:参数类型和返回值类型。 当写出完整函数类型的时候,这两部分都是需要的。 我们以参数列表的形式写出参数类型,为每个参数指定一个名字和类型。 这个名字只是为了增加可读性。 我们也可以这么写

let addFunc: (baseValue: number, increment: number) => number = function (x: number, y: number): number { return x + y }

只要参数类型是匹配的,那么就认为它是有效的函数类型,而不在乎参数名是否正确。

第二部分是返回值类型。 对于返回值,我们在函数和返回值类型之前使用( =>)符号,使之清晰明了。 如之前提到的,返回值类型是函数类型的必要部分,如果函数没有返回任何值,你也必须指定返回值类型为 void而不能留空。

函数的类型只是由参数类型和返回值组成的。 函数中使用的捕获变量不会体现在类型里。 实际上,这些变量是函数的隐藏状态并不是组成API的一部分。

推断类型

尝试这个例子的时候,你会发现如果你在赋值语句的一边指定了类型但是另一边没有类型的话,TypeScript编译器会自动识别出类型:

let addFunc = function(x: number, y: number): number { return x + y }
let addFunc: (baseValue: number, increment: number) => number = function(x, y) { return  x + y }

这叫做“按上下文归类”,是类型推论的一种。 它帮助我们更好地为程序指定类型。

本实例结束实践项目地址

https://github.com/durban89/typescript_demo.git
tag: 1.2.0

转载于:https://my.oschina.net/zhangdapeng89/blog/1928605

TypeScript基础入门 - 函数 - 简介相关推荐

  1. TypeScript基础入门 - 接口 - 简介

    转载地址 TypeScript基础入门 - 接口 - 简介 项目实践仓库 https://github.com/durban89/typescript_demo.git tag: 1.0.6 为了保证 ...

  2. TypeScript基础入门 - 接口 - 继承接口

    转载地址 TypeScript基础入门 - 接口 - 继承接口 项目实践仓库 https://github.com/durban89/typescript_demo.git tag: 1.0.13 为 ...

  3. TypeScript基础入门 - 泛型 - 泛型类型

    2019独角兽企业重金招聘Python工程师标准>>> 转载 TypeScript基础入门 - 泛型 - 泛型类型 项目实践仓库 https://github.com/durban8 ...

  4. TypeScript基础入门 - 接口 - 可选属性

    2019独角兽企业重金招聘Python工程师标准>>> 转载地址 TypeScript基础入门 - 接口 - 可选属性 项目实践仓库 https://github.com/durba ...

  5. TypeScript基础入门之高级类型的可辨识联合(Discriminated Unions)

    2019独角兽企业重金招聘Python工程师标准>>> 转发 TypeScript基础入门之高级类型的可辨识联合(Discriminated Unions) 高级类型 可辨识联合(D ...

  6. TypeScript基础入门 - 接口 - 可索引的类型

    转载地址 TypeScript基础入门 - 接口 - 可索引的类型 项目实践仓库 https://github.com/durban89/typescript_demo.git tag: 1.0.11 ...

  7. TypeScript基础入门

    目录 本文概览: 1. TypeScript的特点 2. TypeScript的安装与使用 (1)项目初始化 (2)配置TSLint 本文概览: 1. TypeScript的特点 TypeScript ...

  8. TypeScript 基础类型+函数+接口+类

    1.简介: TypeScript 是 JavaScript 的一个超集.由微软开发的自由和开源的编程语言.设计目标是开发大型应用.是一种面向对象的编程语言,遵循强类型 javascript与types ...

  9. PHP零基础入门-函数

    函数定义 function() 函数名(形参列表){ //函数体 return 返回值 } 函数默认参数: 函数如果定义形参,调用的时候如果不传递形参则会报错 实参数量多于形参数量不会报错 有一个默认 ...

最新文章

  1. dot Text Error: System.OutOfMemoryException
  2. mysql insert 锁
  3. 参数设置_变频器基本参数设置
  4. c语言黑白棋程序设计报告,C语言课程设计黑白棋
  5. sql数据类型_SQL数据类型
  6. cloud 调用列表并返回数据操作代码
  7. 四大经典大数据应用案例解析
  8. 正则方程推导(转载)
  9. css下拉菜单代码(用纯css实现下拉菜单)
  10. lg android tv 手机助手,LG电视安装第三方APP教程 仅针对安卓电视
  11. Gradle下载与安装
  12. 有赞2019校招及社招内推
  13. SpringBoot使用Logbook记录HTTP请求响应日志
  14. 彩信平台,业务代码规范
  15. 我与我的专业计算机作文500字,电脑走进我的生活作文500字
  16. java截取split_Java使用split截取字符串过程解析
  17. linux课后作业答案第六章,操作系统 第六章作业习题解答
  18. 微软飞行模拟服务器,微软飞行模拟器配置要求一览 最低/最高PC配置详情
  19. 硬件描述语言(HDL)基础——基本结构
  20. 如何基于飞桨打造智能眼镜视觉辅助系统

热门文章

  1. linux下java写ftp服务器端,在Linux下部署网站(java环境部署)第五章 FTP服务器搭建...
  2. python翻译文档地址
  3. Photoshop CC2018软件安装资料及教程
  4. Poisson Image Editing 泊松融合 matlab代码完整
  5. android8 静音震动,iPhone8开启静音后手机振动怎么办?苹果8关闭静音模式震动的两种方法...
  6. 通用印刷体识别 php,实战腾讯云ORC文字识别
  7. linux代码签名,浅谈Linux容器和镜像签名(示例代码)
  8. python逐行读取txt写入新的txt_Python逐行读取txt文本,按符合分割词并逐行写入txt...
  9. TCP三次握手、tcp和udp对比、四表五链
  10. VIM 高校实用配置实践