欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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.类中gettersetter,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()  //因为没有具体的方法,所以我们这里不写括号

}

 

相关标签: typescript