ts的基础类型包含js的基础类型和ts独有的基础类型
我们一般使用[let | const | val] 变量:类型 = 值
的方式声明一个带有类型的变量
- string
let val:string = '1'
- number
let val:number= 1
- boolearn
let val:boolaern= false
- undefind
let val:undefind= undefind
- null
let val:null= null
- symbol
let val:symbol= Symbol('1')
- any
TypeScript 允许我们对any
类型的值执行任何操作,而无需事先执行任何形式的检查。所以如果你给变量定义了any类型则相当于你直接使用js进行开发。一般我们做项目迁移从js转ts的时候,为了避免大部分变量报错我们会使用any类型。日常开发中,该类型应该慎用。
以上结果都不会报错。let anyVal:any = 1 anyVal = '1' anyVal = {}
- unknown
unknown 类型和any类型从某种意义上来说是极为相似的。定义一个unknown 类型的变量也可以赋任何值
但是他也有与any类型不同之处。它只能被赋值给any或者unknown 类型的变量let unknownVal: unknown = 1 unknownVal = '1' unknownVal = {}
let unknownVal1: unknown = unknownVal let unknownVal2: any = unknownVal let unknownVal3: number = unknownVal //报错
- void
某种程度上来说,void 类型像是与 any 类型相反,它表示没有任何类型。当一个函数没有返回值时,你通常会见到其返回值类型是 void// 声明函数返回值为void function warnUser(): void {console.log("This is my warning message"); }
需要注意的是,声明一个 void 类型的变量没有什么作用,因为在严格模式下,它的值只能为 undefined
- never
never 类型表示的是那些永不存在的值的类型。 常见的使用场景是在表达式(如函数)的返回类型,表示它们永远不会正常返回(即陷入死循环、抛出异常等),或在类型推断中返回不可能出现的类型。function assertNever(x: never): never {throw new Error("Unexpected object: " + x); }function colorFromCode(code: string): "red" | "blue" | "green" {switch (code) {case "R": return "red";case "B": return "blue";case "G": return "green";default: return assertNever(code);} }