timeline
title History of TypeScript
November 15, 2012 : Announcing TypeScript 0.8.1
: Luke Hoban
October 8, 2018: Announcing TypeScript 3.1
: 中文网最新版本
November 20, 2023: Announcing TypeScript 5.3
变量
1 2 3 4 5 6 7 8
// 声明变量 letvariable: number
variable = 1 // variable = 'hello' // Type 'string' is not assignable to type 'number'.[不能将类型“string”分配给类型“number”。ts(2322)]
let _variable = true// 变量声明的同时赋值,TS 可以自动对变量进行类型检测 _variable = 1// // Type 'string' is not assignable to type 'number'.[不能将类型“string”分配给类型“number”。ts(2322)]
任意类型,变量设置为 any 类型相当于对该变量关闭了 TS 的类型检测 使用 TS 时,不建议使用 any 类型
1 2 3 4 5 6 7 8
// let var_any: any // 隐式 any:声明变量时不指定类型,则 TS 解析器会自动判断变量类型为 any let var_any // TS7043: Variable 'var_any' implicitly(含蓄地;暗中地) has an 'any' type, // but a better type may be inferred(推断) from usage(使用). var_any = 1 var_any = 1n var_any = 'string' var_any = true
BigInt literals are not available when targeting lower than ES2020.
variable = var_unknown // TS2322 Type 'unknown' is not assignable to type number【不能将类型“unknown”分配给类型“number”。ts(2322)】
// ’unknown‘ 类型的值不能直接赋值给任何变量 if (typeof !=== 'unknown') {...}
断言
解决 ‘unknown’ 类型变量赋值问题 断言有两种写法,如下:
1 2 3 4
// 断言 可以用来告诉解析器变量实际类型 variable = var_unknown as number // TS2322 Type 'unknown' is not assignable to type number【不能将类型“unknown”分配给类型“number”。ts(2322)】 variable = <number>var_unknown console.log(variable)