初识TypeScript <一>| 青训营笔记

135 阅读2分钟

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

初识TypeScript <一>| 青训营笔记

TypeScript属于静态类型,是弱类型语言。包含于兼容JS特行,支持共存,支持渐进式引入升级。TypeScript可读性增强:基于语法解析TSDoc,ide增强,可维护性增强:在编译阶段暴露大部分问题。

常用类型

函数类型

函数的类型实际上指的是参数和返回值的类型。为函数指定类型的;两种方式:

1.单独指定参数、返回值的类型:

function add(num1:number,num2:number):number {
return num1+num2
}

2.同时指定参数、返回值的类型。

对象类型

写法:

let person: {name:string; age:number;sayHi():void}={
name:'Jack',
age:18,
sayHi(){}
}

接口

当一个对象被多次使用时,一般会使用接口(interface)来描述对象的类型,达到复用的目的。

interface Iperson {
 name:string
 age:number
 sayHi():void
 }
 let person: Iperson = {
  name:'Jack',
  age:18,
  sayHi(){}
  }

接口和类型别名的对比:

·相同点:都可以给对象指定类型。

·不同点:接口只能为对象指定类型,类型别名任意。

两个接口之间有相同的属性或方法,可以将公共的属性或方法抽离出来,通过继承来实现复用。

元组

元组类型可以确切地标记有多少元素,以及每个元素的类型:

let a: [number,number] = [1,2]

字面量

字面量类型配合联合类型一起使用,用来表示一组明确可选的可选值表:

function change(direction: 'up' | 'down' | 'left' | 'right') {
console.log(direction)
}

参数direction的值只能是上面四个中的一个,相比于string类型,字面量更加精确严谨。

typeof

使用typeof操作可以获取变量的类型。(只能查询变量或属性的类型)

class类

构造函数:

class Person {
age: number
gender:string
 constructor(age: number,gender: string) {
  this.age = age
  this.gender = gender
  }
 }

·成员初始化后,才能通过this.age来访问实例成员;需要为构造函数指定类型注解,否则会被隐式推断为any;构造函数不需要返回类型。

类型推论

在TS中,某些没有明确指出类型的地方,TS类型推论机制会帮助提供类型,即在这些地方,类型注解可以不写。

类型断言:

使用as关键字实现,as后面是一个更加具体的类型。

总结

这篇文章只是个人对TS的初步认识,下一篇文章将更深入更全面一点。