TypeScript总结
程序员文章站
2022-07-03 19:22:37
...
1.基础类型:
number,string,null,undefinde,symbol,boolean,void
2.对象类型:
对象类型,数组类型,类类型,函数类型
3.类型推断:
- 如果
TS
能够自动分析变量类型, 我们就什么也不需要做了 - 如果
TS
无法分析变量类型的话, 我们就需要使用类型注解
//能推断
const one = 1;
const two = 2;
const total= one + two;
//不能推断 (因为one和two可以传入其他类型)
function getTotal(one, two) {
return one + two;
}
//total可以推断,为了更严禁 还是需要指定类型,因为还是里面可以返回其他的
const total = getTotal(1, 2);
4.类型别名(type)和 类进行定义和接口 是互通的
type Lady = { name: string, age: Number };
class Lady {
name: string;
age: number;
}
interface Lady {
name: string;
age: number;
waistline?: number; //非必须值
[propname: string]: any; //允许加入任意 key:string value 任意值
say(): string; //方法
}
//接口和类型别名区别
//可以代表基础类型type name= string
//必须代表的是一个对象
//接口和类
class XiaoJieJie implements Girl {}
//接口可以继承接口
interface Teacher extends Girl {
teach(): string;
}
5.元组和数组
//数组 数据位置任意
const xiaojiejie: (string | number)[] = ["dajiao", "teacher", 28];
//固定位置 固定数据
const xiaojiejie: [string, string, number] = ["dajiao", "teacher", 28];
6.类的基本使用
- 继承,重写
-
private,
protected,
public
7.类的构造函数
class Person{
public name :string ;
constructor(name:string){
this.name=name
}
}
const person= new Person('jspang')
console.log(person.name)
//简化写法 这种写法就相当于你定义了一个name,然后在构造函数里进行了赋值,
class Person{
constructor(public name:string){
}
}
const person= new Person('jspang')
console.log(person.name)
子类继承父类并有构造函数的原则,就是在子类里写构造函数时,必须用super()调用父类的构造函数,如果需要传值,也必须进行传值操作
7.类中getter
和setter,static,readonly
// 让私有属性 在外部可以访问和修改
class Xiaojiejie {
constructor(private _age:number){}
get age(){
return this._age-10
}
set age(age:number){
this._age=age
}
}
const dajiao = new Xiaojiejie(28)
dajiao.age=25
console.log(dajiao.age)
// 静态方法,不用new
static name
static sayLove() {
return "I Love you";
}
//只读
public readonly _name :string;
8.抽象类
继承抽象类的类必须实现抽象方法才可以
abstract class Girl{
abstract skill() //因为没有具体的方法,所以我们这里不写括号
}