Quiet
  • HOME
  • ARCHIVE
  • CATEGORIES
  • TAGS
  • LINKS
  • ABOUT

李致知

  • HOME
  • ARCHIVE
  • CATEGORIES
  • TAGS
  • LINKS
  • ABOUT
Quiet主题
  • TypeScript

TypeScript的一些理解和技巧(等我遇到新的就更新)

李致知
技术点

2023-02-09 04:04:34

文章目录
  1. 一,TS干啥的
  2. 二,什么时候使用类型注解
  3. 三,接口和类型别名

一,TS干啥的

首先我们要明白TS只是一个JS的超集,它最终也会变成JS。TS的作用就是静态类型,就是将我们的一些参数和变量的类型限制住,防止使用错误类型,简单的说就是对变量和对象的类型进行一个规范。那么为什么要有规范呢,是因为这样更方便开发,我们对数据和方法的规范越多,出错的可能就越少。

TS的作用场景是编辑器,就是我们写代码的地方。它的使用能配合编辑器给我们更好的编码体验。

二,什么时候使用类型注解

类型注解就是TS的类型规范,就像下面这样。

const count:number;
count = 123

我们的TS能够自动地对我们的变量的类型进行推测。比如:

const a = 234

再vscode中TS会告诉我们a是一个number(当我们把鼠标放在a上)。

而我们是否使用类型注解的原则就是:TS是否能够自动分析出变量类型。如果能够分析出,那么就不用注解,如果不能的话就要加上注解。

我举两个例子:

//例子一
const x = 1
const y = 2
const sum = x + y 
//例子二
function getSum(a,b){
    return a+b;
}
const total = getSum(1,2)

例子一是不需要对sum或者x,y进行注解的,因为TS会自动推断出来;可能理解不了为啥会这样;

看一下例子二可能就懂了,函数getSum的参数a和b我们都不知道是什么类型,而在函数体里执行了a+b,如果我们这里的a和b不是同一类型,比如a是字符串而b是数字或者对象之类的,他们的相加这个逻辑就是错误的,我们的本意是想要两个数字相加,所以这时就要对a和b进行一个限制。

function getSum(a:number,b:number){
    return a+b;
}

而对我们的total我们不需要添加注释,因为TS此时已经能够推断出total也是number。

当然我们也习惯对函数的返回值加一个限制以使我们的程序更严谨。

三,接口和类型别名

类型别名:这里我们限制name变量只能是string

type name = string
type login = {
    username:string,
    password:number
}

接口:一般我们对一个对象使用接口限制。

应用场景:一般对象我都习惯用interface而不是type

interface login{
    username:string,
    password:number
}
interface person{
    name:string,
    age:number,
    sex?:boolean,//sex可以存在也可以不存在
    [propname:string]:any,//允许不同于上三个属性的键为string的属性添加任意个进来
    say():string,//f
}

两者的区别:

  • 类型别名可以直接给类型。比如我们上面type的第一个例子。而接口必须给对象。
上一篇

我看过的

下一篇

解决prettier空格敏感的过程

©2023 By 李致知. 主题: Quiet 鲁ICP备2022039519号-1
Quiet主题