ts基础

环境

本地安装ts

npm i typescript -D

查看版本

npx tsc -v

编译ts

npx tsc index.ts

监听文件变化,自动编译

npx tsc index.ts -w

类型推断

声明变量时可以不指定类型,ts会根据初始值自动推断类型

let name = 'Bob'   // 自动推断 name: string
const arr = [1, 'abc']  // 自动推断 arr: (number | string)[]

创建配置文件

npx tsc --init  // 会创建tsconfig.json

类型

any和unknown

any: 不限定任何类型,ts将不进行类型检查。
unknown:该变量有类型,但不知道其类型。

可以将类型“any”分配给其他类型。不能将类型“unknown”分配给其他类型。

unknown可以作为as断言的中间类型:

let name: string = 'Bob'
let a: number = name as unkonwn as number
// let a: number = name as number 会报错

void 和 never

void :函数返回undefined
never:函数不会执行到底,比如抛错会中断函数,这种情况用never

null 和 undefined

type

tuple

数组只能设置成员类型,不能限制某个位置的类型

let arr: (string|number|boolean)[]

tuple用于限定数组各个位置的类型

let t: [string, number, boolean]
// 只有['asd', 123, false]这种特定位置类型的数组符合

enum

enum Gender {
  MALE,
  FEMALE
}

as 断言

let name: string = 'Bob' // 宽泛类型
const age = 18  // 值类型,不能变更

as const 可以将宽泛类型转换为值类型

let name: string = 'Bob' as const
// 等效于
const name = 'Bob'
// 数组转换为元组
const arr = ['asd', 18, true] as const

非空断言

const el: HTMLDivElement = document.querySelector("#app") as HTMLDivElement

或者

const el: HTMLDivElement = document.querySelector("#app")!

你可能感兴趣的:(ts基础)