3.ts的函数

1)函数的返回值和参数

在函数的定义需要定义其的返回值可以void,来表示没有返回值

函数参数的定义,举个例子分析下吧

name:string,age?:number=23

冒号后面是参数的类型,加个?表示这个参数不是必传的,所以你就可以在这理解到,这个?如果某个参数写了,那后面都是需要加的,因为它不是必传的。在类型后面用个赋值方式就是给这个参数写一个默认参数。

当参数很多的时候,你就用需要用三点运算符数组来接受参数。

(...arr:any[]) 这样的话,都有的的参数都是存在arr数组中。

2)函数的重载

typescript中的重载:通过为同一个函数提供多个函数类型定义来试下多种功能的目的。

例子:

function getInfo(name:string):string;

function getInfo(age:number):string;

function getInfo(str:any):any{

  if(typeof str==='string'){

     return '我叫:'+str;

  }else{

    return '我的年龄是'+str;

  }

}

基本上看下就看明白了的,基本上和js的重载差不多。和java,.net之类的重载还是不一样的,毕竟基础还是JavaScript。

4.函数的类

1)举个普通的ts类的例子

class Person{

  name:string; //属性 前面省略了public关键词

  constructor(n:string){ //构造函数 实例化类的时候触发的方法

    this.name=n;

  }

  run():void{  // 方法

    alert(this.name);

  }

}

2)继承

class Son extends Person{

 constructor(name:string){

   super(name);  // 初始化父类的构造函数

 }

}

这样子类就继承的父类可继承的属性,方法。

子类方法与父类方法同名时,子类方法覆盖父类。

3)修饰符

public :公有 在当前类里面、 子类 、类外面都可以访问

protected:保护类型 在当前类里面、子类里面可以访问 ,在类外部没法访问

private :私有 在当前类里面可以访问,子类、类外部都没法访问

属性如果不加修饰符 默认就是 公有 (public)

4)静态属性和静态方法

static 开头定义的属性和方法就是静态属性和静态方法。

需要注意的是,静态方法是不能直接调用类里面的属性,只能调用静态属性

只有静态属性可以类名加’.’静态属性名直接获取。

5)多态:父类定义一个方法不去实现,让继承它的子类去实现 每一个子类有不同的表现。多态属于继承。通俗的讲其实就是子类可以覆盖父类的方法。

6)抽象类与抽象方法

abstract 开头的类或者方法就是抽象类或者抽象方法

提供其他类继承的基类,不能直接被实例化。通俗的来讲就是以下几点注意下,

一。如果抽象父类有抽象方法,那么继承的子类必须有抽象方法,不然不能被创建。

二。抽象类也不能直接实例化。

三。抽象方法必须放在抽象类。