TypeScript--函数

函数的定义

  • es5
// 函数的定义
// es5定义函数的方法
function run() {
    
    
  return "run";
}
// 匿名函数
var run2 = function () {
    
    
  return "run2";
};
  • ts
// ts定义函数的方法
function getInfo(name: string, age: number): string {
    
    
  return `${
      
      name} : ${
      
      age}`;
}
// 匿名函数
var run3 = function (): string {
    
    
  return "run2";
};
// 没有返回值的方法
function run4(): void {
    
    
  console.log("run4");
}

方法可选参数

// es5里面方法的实参和行参可以不一样,但是ts中必须一样,如果不一样就需要配置可选参数
function getInfo2(name: string, age?: number): string {
    
    
  if (age) {
    
    
    return `${
      
      name} --- ${
      
      age}`;
  } else {
    
    
    return `${
      
      name} ---年龄保密`;
  }
}
//注意:可选参数必须配置到参数的最后面

默认参数

function getInfo3(name: string, age: number = 20): string {
    
    
  if (age) {
    
    
    return `${
      
      name} --- ${
      
      age}`;
  } else {
    
    
    return `${
      
      name} ---年龄保密`;
  }
}
alert(getInfo3("张三"));
alert(getInfo3("张三", 30));

剩余参数

//三点运算符 接受新参传过来的值
function sum1(...result: number[]): number {
    
    
  var sum = 0;
  for (let index = 0; index < result.length; index++) {
    
    
    sum += result[index];
  }
  return sum;
}
// a,b会匹配传过来的前2个值
function sum2(a: number, b: number, ...result: number[]): number {
    
    
  var sum = a + b;

  for (var i = 0; i < result.length; i++) {
    
    
    sum += result[i];
  }

  return sum;
}

函数的重载

// java中方法的重载:重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数重载的情况。
// typescript中的重载:通过为同一个函数提供多个函数类型定义来试下多种功能的目的。
// ts为了兼容es5 以及 es6 重载的写法和java中有区别。
function getMsg(name: string): string;
function getMsg(age: number): string;
function getMsg(str: any): any {
    
    
  if (typeof str == "string") {
    
    
    return "我叫:" + str;
  } else {
    
    
    return "我的年龄是" + str;
  }
}
function getMsg2(name: string): string;
function getMsg2(name: string, age: number): string;
function getMsg2(name: any, age?: any): any {
    
    
  if (age) {
    
    
    return "我叫:" + name + "我的年龄是" + age;
  } else {
    
    
    return "我叫:" + name;
  }
}

箭头函数

  • es5
// es5的写法
setTimeout(function () {
    
    
  alert("run");
});
  • es6
// es6的写法
setTimeout(() => alert("run"));

猜你喜欢

转载自blog.csdn.net/I_r_o_n_M_a_n/article/details/114656468
今日推荐