typeScript 函數

 

//es5定義函數的方法

//1函數聲明

function run() {

return 'run';

}

//2匿名函數

var run2 = function () {

 

return 'run2';

}

 

//ts 定義函數的方法:同上

function runTS(): string {

return 'runTS';

}

var runTS2 = function (): number {

return 123;

}


 

function getInfo(name: string, age: number): string {

/**

*

* 字符串模板

* ts裏支持在字符串中插入變量,格式爲${},注意字符串必須用``包裹

*/

return `${name} ---- ${age}`;//模板字符串

}

// alert(getInfo('zhangsan', 20));

console.log(getInfo('zhangsan', 20));

 

var getInfo2 = function (name: string, age: number): string {

return `${name} === ${age}`;

}

console.log(getInfo2('匿名函數', 3));

 

//沒有返回值

function runTS3(): void {

 

}

//可選參數

//ts 參數可傳可不傳 ?表示可選參數

//可選參數必須配置到參數的最後面

function getInfo3(name: string, age?: number): string {

 

if (age) {

return name + age;

} else {

return name + 'age保密';

}

}

 

console.log(getInfo3('zhangsan', 30));

console.log(getInfo3('lisi'));

 

//默認參數 用法類似可選參數

function getInfo4(age: number = 20, name: string, adress: string = 'beijing'): string {

 

// return name+age+adress;

return `${name}--${age}--${adress}--`

}

console.log(getInfo4(20, 'zhangsan'));

 

//剩餘參數 三點運算符...

function sum(a: number, b: number, c: number): number {

return a + b + c;

}

 

//三點運算符

function sumArr(a: number, b: number, ...result: number[]): number {

let sum = a + b;

for (let i = 0; i < result.length; i++) {

sum = sum + result[i];

}

return sum;

}

 

console.log(sumArr(1, 2, 3, 4, 5, 6, 7, 8, 9));

 

/**

* 重載 面向對象的編程,方法名相同,參數數量不同或者類型不同

*

* es5出現同名方法,下面的會替換上面的方法

*/

 

/**

*

* ts的重載 先定義,後實現

* */

function getInfo5(name: string): string;

function getInfo5(age: number): number;

function getInfo5(str: string | number): string | number {

if (typeof str == 'string') {

return 'name==' + str;

} else {

return 'age==' + str;

}

}

console.log(getInfo5('zhangsan'));

console.log(getInfo5(10));

 

function getInfo6(name: string): string;

function getInfo6(name: string, age: number): string;

function getInfo6(str: string, age?: number): string {

if (age) {

return 'name==' + str + ' age==' + age;

} else {

return 'age==' + str;

}

}

console.log(getInfo6('lisi'));

console.log(getInfo6('lisi', 30));

 

//箭頭函數 es6的語法

setTimeout(function () {

console.log('fucntion');

}, 1000);

 

//箭頭函數的this指向上下文

setTimeout(() => {

console.log('箭頭函數');

}, 1000);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章