基础数据类型
let str: string = 'string'
let num: number = 1
let isTrue: boolean = true
const sys: symbol = Symbol('')
复杂数据类型
// 声明方式
const arr:number[] = [1, 2, 4]
// 泛型
const arr: Array<number> = [1, 2, 4]
const state: [number, string] = [1, 'string']
// 尽量不要用 object 去定义一个类型, 因为在 ts 中, 对象, 函数, 数组, 正则都是 object 类型
const obj: object = {}
obj = () => {} // 不会报错
obj = new RegExp("") // 不会报错
特殊数据类型
- 三个无用类型
// strict 为 true 的情况下,声明 undefined和 null 类型只能将他们赋值给自身
let isUndefined: undefined = undefined
let isNull: null = null
// 如果一定要使用的初始值为空的话, 可以使用联合类型
let str: string | null
str = '1'
// void 一般 用来表示一个没有返回值的函数返回类型
function log(msg: string):void {}
- 两个神秘类型
// any 官方提供的一个可绕过静态类型检查的作弊方式, js项目迁移到 ts 项目时,针对不确定的类型,
// 我们即可 使用 any 来定义类型, 需要注意的是, 定义为 any 类型后, 变量将失去类型检查的能力,
// 所以不在万不得以的情 况下我们最好不要用 any
function log(msg: any) {
return {} + msg
} // 不报错
TypeScript 3.0中引入的 unknown 类型,但它更安全。与 any 一样,所有类型都可以分配给unknown。
不同的是 unknown 类型的变量只能赋值给 any 和 unknown
let isUnknown: unknown = 1
let isNumber: number = isUnknown // 不能将类型“unknown”分配给类型“number”。ts(2322)
let isAny: any = isUnknown // ok
网友评论