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 开头的类或者方法就是抽象类或者抽象方法
提供其他类继承的基类,不能直接被实例化。通俗的来讲就是以下几点注意下,
一。如果抽象父类有抽象方法,那么继承的子类必须有抽象方法,不然不能被创建。
二。抽象类也不能直接实例化。
三。抽象方法必须放在抽象类。