TS-系列-基础

4,150 阅读3分钟

这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战

简介

  • 在本章中,我们要介绍在TS中常见类型的基本使用

原始值

  • string、number、boolean、null、undefined、sbmbol、bigint
const str: string = "hello ts";
const num: number = 999;
const flag: boolean = false;
const _null: null = null;
const _undefined: undefined = undefined;
const _symbol:symbol = Symbol()
const _bigint :bigint =9007199254740991n

注意

  • Bigint是以字母n结尾,并没有写错,当然还有这种写法Bigint(9007199254740991)

数组

示例一

const arr: number[] = [1,2,3]

示例二

const arr: Array<number> = [1,2,3]

说明

  • 要指定数组[1,2,3]的类型,可以使用number[]语法
  • 这个语法适用于任何类型,比如string[]boolean[]
  • 你还可以看到Array<number>这样的写法,当我们学习泛型的时候,会解锁这种写法更多的姿势

元祖

介绍

  • 元祖Tuple属于另一种数组的类型,他能确切的知道包含多少个元素,以及索引下标对应的数据类型 使用场景
  • 在使用地图API的时候,使用经纬度坐标来标记位置信息 示例
const position:[number, number] = [116.20, 39.56]

如图所示,我们设置了北京的经纬度,这样就可以通过元祖Tuple类型清晰的看到 position 属性中包含的数据个数和类型

  • 错误示例

image.png 示例中我们定义了长度为2,类型都为number的数组,但我们给定了3个初始化值,那么就会报错提示

联合类型

介绍

  • 在上边的数组介绍中我们有这样的写法number[],表示当前数组中值的数据类型是number
  • 当我们的数组中既有number类型又有string类型的时候就该联合类型出场了 示例
const arr: (number | string)[] = [1, 2, 3, "d", "d", "d", "d"];

image.png 说明

  • 如果我们对(number | string)[]类型的数组添加一个 boolean类型的数据,就会提示报错

类型别名

介绍

  • 可以为任意类型起别名 示例一
const arr: (number | string)[] = [1, 2, 3, "d", "d", "d", "d"];
const arr1: (number | string)[] = [1, 2, 3, "h", "x", "d", "m"];

说明

  • 在上边我们定义了俩个数组,他们的类型都是(number | string)[]这样的联合类型,本着代码精简化(偷懒少些代码)的原则,可以通过起别名的方式实现下 示例二
type Arr = (number | string)[]
const arr: Arr = [1, 2, 3, "d", "d", "d", "d"];
const arr1: Arr = [1, 2, 3, "h", "x", "d", "m"];

说明

  • 通过关键字type设置类型别名
  • 在需要引用的地方直接使用 :类型别名的变量就可以了
  • 大大提高了我们编码效率(摸鱼时间)

函数

介绍

  • 函数是js中传递数据的主要方式,在ts中我们可以指定函数参数的类型和返回值的类型 示例一
function add(x:number, y:number) {
    return x + y
}
add(1,2)

示例二

function add(x:number, y:number):number {
    return x + y
}
add(1,2)

说明

  • 写法和直接声明一个基本数据类型的类型是一样的
  • 示例二中再函数上加了:number,表示 当前函数的返回值类型是number
  • 这样,函数的入参类型我们都显示的定义了number类型,返回值也显式的定义了number

image.png

  • 当我们把鼠标挪到add函数的调用上的时候,TS就会推导出当前函数的类型,非常方便 注意

image.png

  • 只要我们指定了函数的入参数据类型,不显式的设置函数的返回值类型
  • ts会自动推导出返回值的类型,非常方便

any

介绍

  • any属于ts中的特殊类型,如果你不想TS检查你的代码,那么你就可以使用它 示例
let _any: any = 0
_any = "hello"

image.png

说明

  • 当我们用any修饰变量之后,TS就失去了类型保护
  • 不建议使用

写在最后

  • TS系列文章会由浅入深的逐步带你领略TS的魅力
  • 欢迎大家评论,指出不完善的地方