小白也在学的TypeScript_01 | 青训营笔记

89 阅读2分钟

这是我参与「第四届青训营」笔记创作活动的的第7天。

数据类型

定义变量时需要同时声明数据类型,并严格遵守。否则编译不通过。
定义格式:let(var) VariateName:type = Specific_Value

类型type说明
布尔类型booleantrue/false
数字类型number不区分整型和浮点型
字符串类型string""''包裹
数组类型array声明:typename[]Array<typename>
元组类型tuple属于数组的一种。声明:[type1,type2,……]
枚举类型enumenum VariateName {标识符1[=整型常数 0],标识符2[=整型常数 1],……}
任意类型any
未定义类型undefined一个元素可能是Undefined类型:typename | undefined
空类型null typename | undefined | null
void类型void“没有类型”。一般用于定义方法时方法没有返回值的情况
never类型never“其他类型”,包括nullundefined。代表从不会出现的值

关于函数

函数定义方法

函数声明法

function 函数名():typename {
    ……
    return value;
}

返回值类型须与函数类型一致。

匿名函数法

var fun1 = function():typename {
    ……
    return value;
}

//方法调用
fun1();

函数传参

1. 形参声明

参数也需要声明类型。

function fun2(name:string, age:number):string {
    return `${name} --- ${age}`;
}

//方法调用
fun2();

2. 可选参数

存在可选参数时:

function fun2(name:string, age?:number):string {
    return `${name} --- ${age}`;
}
//参数后加 ?号

3. 默认参数

ts中,函数还可以设置默认参数。
直接在声明时对其附上默认值即可。

4. 剩余参数

三点运算符(处理剩余参数)

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

函数重载

通过为同一个函数提供多个函数类型定义,以实现多种功能的目的。
重载函数之间的不同体现在声明的数据类型的不同上;相同的是函数名。

箭头函数

暂略。es5中涉及。

TypeScript中的类

类的定义

class 类名{
    //定义类中的属性
    属性1:属性类型 [=属性值];
    
    //构造函数
    constructor(a:typename){
        this.属性1 = a;
    }
    
    //定义类中的方法
    funName():typename{
        ……
    }
}
  • 实例化一个类——var p = new 类名()
  • 类外补充定义——类名.prototype.元素/方法+定义操作

类的继承

extends和super关键字

class 子类名 extends 父类名 {
    constructor(属性1:属性类型){
        super(属性1); //初始化父类的构造函数
    }
    
    //子类可以扩展自己的方法
}

类的修饰符

  1. public(不加修饰符时默认为公有属性)
  2. protected
  3. private

类的静态方法

不需要实例化,可直接调用的类方法。
定义:static FunName(){……}

静态方法中只能调用类中的静态属性

类的多态

留坑……

抽象类

留坑……