Typescript函数
编程都是需要函数的,因为有了函数就能复用很多东西了。不仅仅能够复用代码,还能保持代码的简洁性和提高编程的逻辑性。
在原生的JavaScript中,函数的定义有三种,
function foo() {} // 直接声明
var foo = function() {} // 将函数赋值给变量
var Foo = {
a : function() {
}
} // 对象函数
那么在typescript当中,又是怎么样的呢?
1、第一种
function foo():string {
return 'hahaha'
}
var result = foo() // hahaha
这是普通的函数声明,直接返回hahaha。
2、第二种,形参
function foo(a:number):string {
return '这个数字是' + a
}
var result = foo(18) // 这个数字是18
在foo():string,后面的变量告诉该函数返回的是什么值,如果是string则返回的是string类型,如果是:number则返回的是number类型,如果不写,则默认为void类型。
在函数当中,在大括号里写的变量代表的是形参。
正如上诉代码
function foo(a:number):string () {
}
// a:number 代表的是形参
var result = foo(18) // 18代表的是实参,实际传入的参数
凡是有一定的JavaScript基础我们都知道,函数体写了几个形参,就必须传入几个参数,多一个少一个都不行,但是,在typescript中,可以选择性的传实参,这点是比较灵活。
有可选参数的函数,采用?标注
function person(age:number, name?:string) {
let a:string = ''
a = "find" + age + 'years old'
if(name != undefined) {
a = a + '' +name
}
return a + 'person'
}
var result = person(18); // find 18 years old
var result1 = person(18, 'does');
// find 18 does years old
console.log(result);
console.log(result1);
由上诉的例子可以知道,name作为可选参数,是可传可不传的。体现typescript的灵活性。
返回指定类型的函数
同样的,我们也可以给函数增加一个默认的返回参数。
同样复用上面的代码。
function person(age:number, name?:string):string {
let a:string = ''
a = "find" + age + 'years old'
if(name != undefined) {
a = a + '' +name
}
return a + 'person'
}
var result = person(18); // find 18 years old
var result1 = person(18, 'does');
// find 18 does years old
console.log(result);
console.log(result1);
在大括号后面增加:string,默认返回的是string类型的参数
不限参数个数的函数
简单的理解就是,出去逛街的时候,你可以会买一个商品,也可能会买多个商品。所以此时的函数是不确定性的。比如写一个shopping函数
function shopping(...type:string[]):string {
let a:string = "我买到了"
for(let i = 0; i < type.length; i++) {
a = a + type[i]
if(i<type.length) {
a = a + ','
}
}
a = a + "商品"
return a
}
// 传参数的时候就可以多个传值了
var result:string = shopping("包","衣服","裤子")
console.log(result)
Typescript函数的更多相关文章
- TypeScript 函数 (五)
传递给一个函数的参数个数必须与函数期望的参数个数一致. 参数类别: 必须参数 可选参数 :可选参数必须在参数后面. 默认参数 :当用户没有传递这个参数或传递的值是undefined时. 它们叫做有默认 ...
- TypeScript入门三:TypeScript函数类型
TypeScript函数类型 TypeScript函数的参数 TypeScript函数的this与箭头函数 TypeScript函数重载 一.TypeScript函数类型 在上一篇博客中已经对声明Ty ...
- typeScript函数篇
typeScript的函数是在es6的函数特性的基础上加了一些后端的概念:泛型.参数类型声明.返回值类型声明.重载.装饰器等.其他的一些特性:箭头函数.生成器.async-await.promise等 ...
- typescript函数(笔记非干货)
函数类型 Function Type 为函数定义类型 Define types for functions 我们可以给每个参数添加类型之后再为函数本身添加返回值类型. TypeScript能够根据返回 ...
- TypeScript 函数-函数类型
//指定参数类型 function add(x:number,y:number){ console.log("x:"+x); // reutrn(x+y); } //指定函数类型 ...
- typescript函数类型接口
/* 接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用.接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据, ...
- typescript 函数(定义、参数、重载)
代码: // 本节内容 // 1.函数的定义 // 2.参数(可选参数/默认参数/剩余参数) // 3.方法的重载 // js // function add(x,y){ // return x+y ...
- TypeScript 函数-重载
function attr(name:string):string; function attr(age:number):string; function attr(nameorage:any):an ...
- TypeScript 函数-Lambads 和 this 关键字的使用
let people = { name:["a","b","c","d"], /* getName:function() ...
随机推荐
- iOS真机命令(自动化测试)
获取设备的的UDID idevice_id --list # 显示当前所连接设备的 udid instruments -s devices # 列出所有设备,包括真机.模拟器.mac idevicei ...
- UML实践
UML图一览 1.分工泳道图 使工作内容更加清晰 2.类图 更加细化了一些函数,对于之后的接口文档细节问题进行了约束 3.用例图 实现了一个玩家的整体可操作的概况 4.活动图 1)注册活动图 用于登录 ...
- linux(ubuntu)因为代理网页无法访问
当有一天你打开浏览器的时候,页面上显示,未链接到网络,请检查代理服务器,出现了如下图所示的情况: 但是你检查一下了网络,可以ping通,而且在同一个网络下,你的手机平板可以上网,那么你就想一想,昨天i ...
- keepalived.md
配置文件说明 global_defs区域 global_defs { notification_email { acassen@firewall.loc failover@firewall.loc s ...
- linux mint gcc 编译第一个c程序
GCC是Linux操作系统下一个非常重要的源代码编译工具,有着许多重要的选项,支持许多不同语言的编译,如C.C++.Ada. Fortran.Objective.Perl.Python.Ruby以及J ...
- 【[SDOI2015]约数个数和】
慢慢化柿子吧 要求的是这个 \[\sum_{i=1}^N\sum_{j=1}^Md(ij)\] 神奇的约数个数函数有一个这样的性质 \[d(ij)=\sum_{x|i}\sum_{y|j}[(x,y) ...
- TensorFlow学习之 图像预处理
import tensorflow as tf import matplotlib.pyplot as plt image_raw_data = tf.gfile.GFile("./pict ...
- 【vue】饿了么项目-header组件开发
1.数据传递的理解 在App.vue中用到了header组件,首先注册组件 components: { 'v-header': header } 然后才能引用 <v-header :seller ...
- Python 多线程 线程安全、daemon简介 (四)
线程安全 只能在Winodws下的ipython中演示,Python命令行.Pycharm.Mac下的ipython都演示不出效果 import threading def worker(): for ...
- Spring(九)之事件处理
Spring的核心是ApplicationContext,它管理bean的完整生命周期.ApplicationContext在加载bean时发布某些类型的事件.例如,ContextStartedEve ...