TypeScript函数
2015-02-18 21:32
302 查看
1.函数类型
ts:/* js写法: function add(x,y){//命名函数 return x+y; } var myAdd=function(x,y){//匿名函数 return x+y; }*/ /* ts写法*/ function add(x:number,y:number):string{//命名函数 // return x+y;//返回number类型 return "mm"; } var myAdd = function (x:number,y:string):string {//匿名函数 return "hi!"; }; /*name:string,age:number指定n和a的具体意义*/ var myAddts:(name:string,age:number) =>number = function (n:string,a:number):number {//==>后是返回值类型 return a; };对应js:
/* js写法: function add(x,y){//命名函数 return x+y; } var myAdd=function(x,y){//匿名函数 return x+y; }*/ /* ts写法*/ function add(x, y) { // return x+y;//返回number类型 return "mm"; } var myAdd = function (x, y) { return "hi!"; }; /*name:string,age:number指定n和a的具体意义*/ var myAddts = function (n, a) { return a; };
2.可选和默认参数
ts:/*可选参数 ? */ function buildName(firstName:string,lastName:string){ return firstName + " " + lastName; } var result1 = buildName("ma","mz"); //var result2 = buildName("ma");//编译错误 //var result3 = buildName("ma","mz","");//编译错误 function buildName2(firstName:string,lastName?:string){ if(lastName){ return firstName + " " + lastName; }else{ return firstName; } } var result22 = buildName2("ma");//有?可有可无 /* 默认参数*/ function buildName3(firstName:string,lastName="mm"){ return firstName+" "+lastName; } var r1=buildName3("m");//lastName是mm var r2=buildName3("ma","mz");//lastName改为mz //vae r3=buildName("ma","mz","");//编译错误 //document.getElementById("pid").innerHTML = r1;//m mm document.getElementById("pid").innerHTML = r2;//ma mz对应js:
/*可选参数 ? */ function buildName(firstName, lastName) { return firstName + " " + lastName; } var result1 = buildName("ma", "mz"); //var result2 = buildName("ma");//编译错误 //var result3 = buildName("ma","mz","");//编译错误 function buildName2(firstName, lastName) { if (lastName) { return firstName + " " + lastName; } else { return firstName; } } var result22 = buildName2("ma"); //有?可有可无 /* 默认参数*/ function buildName3(firstName, lastName) { if (lastName === void 0) { lastName = "mm"; } return firstName + " " + lastName; } var r1 = buildName3("m"); //lastName是mm var r2 = buildName3("ma", "mz"); //lastName改为mz //vae r3=buildName("ma","mz","");//编译错误 //document.getElementById("pid").innerHTML = r1;//m mm document.getElementById("pid").innerHTML = r2; //ma mz
3.可变参数
ts:function peopleName(firstName:string,...restOfname:string[]){//...restOfname:string[]可变参数 return firstName+""+restOfname.join("-"); } var pn = peopleName("m1","m2","m3","?");//可变参数,任意个 document.getE对应js:
function peopleName(firstName) { var restOfname = []; for (var _i = 1; _i < arguments.length; _i++) { restOfname[_i - 1] = arguments[_i]; } return firstName + "" + restOfname.join("-"); } var pn = peopleName("m1", "m2", "m3", "?"); //可变参数,任意个 document.getElementById("pid").innerHTML = pn; //m1m2-m3-?
4.Lambads 和 this 关键字的使用
ts:var people = { name:["m1","m2","m3","m4"], getName:function(){ /*return function () { var i = Math.floor(Math.random()*4); return{ n:this.name[i]//undefined this不是name数组 } }*/ return ()=> {//Lambads 的使用 var i = Math.floor(Math.random()*4); return{ n:this.name[i]//m* } } } }; var Myname = people.getName(); alert("名字:" +Myname().n);对应js:
var people = { name: ["m1", "m2", "m3", "m4"], getName: function () { /*return function () { var i = Math.floor(Math.random()*4); return{ n:this.name[i]//undefined this不是name数组 } }*/ var _this = this; return function () { var i = Math.floor(Math.random() * 4); return { n: _this.name[i] //m* }; }; } }; var Myname = people.getName(); alert("名字:" + Myname().n);
5.重载
ts:function attr(name:string):string; function attr(age:number):number; function attr(nameorage:any):any{ if(nameorage&&typeof nameorage == "string"){ alert("name"); }else{ alert("age"); } } //attr("mm");//name attr(11);//age对应js:
function attr(nameorage) { if (nameorage && typeof nameorage == "string") { alert("name"); } else { alert("age"); } } //attr("mm");//name attr(11); //age
相关文章推荐
- TypeScript开发系列(二)——VS让普通工程自动编译TypeScript
- Egret引擎实现多个遮罩
- TypeScript接口
- TypeScript基本数据类型
- TypeScript环境搭建
- ECMAScript 6 模块简介
- TypeScript介绍视频 推荐
- ANGULAR2 摘要(一)
- ionic2 入门
- LayaAir 游戏架构分析
- LayaAir 加载图集资源并播放动画
- TypeScript入门
- typescript中加载img
- TypeScript 模块
- TypeScript 高级类型
- TypeScript 类型兼容
- TypeScript 函数
- TypeScript 接口
- 使用 NPM 发布与维护 TypeScript 模块
- TypeScript 的声明文件的使用与编写