# 类型
# 基础类型
// 布尔类型
const bool: boolean = true
// 数值
const num: number = 5
// 字符串
const str: string = 'string'
// 数组
const arr: string[] = ['s', 't', 'r']
const Arr: Array<number> = [5]
const anyscript: any[] = [5, 'str']
// 元祖 定义一个已知长度和类型的数组
const tuple: [string, number] = ['zq', 5]
// 枚举
enum Color {
red = 1, // 默认值为 1 不加默认值 默认从 0 开始
white = 2,
black
}
const color: Color = Color.white
// 任意类型
const everything: any = ''
const everything2: unknown = '' // 推荐使用 unknown
// void 函数无返回值
function say(): void {
console.log('hi')
}
// never 抛出异常 或 无限循环 的函数返回值
function error(): never {
throw new Error('error')
}
// 联合类型
const value: string | number = 'str'
// 交叉类型 一般是对象
const instance: T & U = new T()
// 类型断言 联合类型一般会用到 可以手动指定一个类型
function length(a: string | number): number {
return (a as string).length
return (<string>x).length
}
# 类型别名
- 多用于联合类型
type alias = string | number | boolean
interface A {
id: number
}
interface B {
age: number
}
type C = A & B
# 字符串字面量类型
type name = 'status' | 'type' | 'level'
const person: name = 'status' // 类似枚举 约束变量取值
# Promise
interface Response {
code: number
data: any[],
message: string
}
const p: Promise<Response> = new Promise(fn)
← Typescript 接口 →