这是我参与「第四届青训营」笔记创作活动的的第7天。
数据类型
定义变量时需要同时声明数据类型,并严格遵守。否则编译不通过。
定义格式:let(var) VariateName:type = Specific_Value
| 类型 | type | 说明 |
|---|---|---|
| 布尔类型 | boolean | true/false |
| 数字类型 | number | 不区分整型和浮点型 |
| 字符串类型 | string | ""或''包裹 |
| 数组类型 | array | 声明:typename[]或Array<typename> |
| 元组类型 | tuple | 属于数组的一种。声明:[type1,type2,……] |
| 枚举类型 | enum | enum VariateName {标识符1[=整型常数 0],标识符2[=整型常数 1],……} |
| 任意类型 | any | |
| 未定义类型 | undefined | 一个元素可能是Undefined类型:typename | undefined |
| 空类型 | null | typename | undefined | null |
| void类型 | void | “没有类型”。一般用于定义方法时方法没有返回值的情况 |
| never类型 | never | “其他类型”,包括null和undefined。代表从不会出现的值 |
关于函数
函数定义方法
函数声明法
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); //初始化父类的构造函数
}
//子类可以扩展自己的方法
}
类的修饰符
public(不加修饰符时默认为公有属性)protectedprivate
类的静态方法
不需要实例化,可直接调用的类方法。
定义:static FunName(){……}
静态方法中只能调用类中的静态属性
类的多态
留坑……
抽象类
留坑……