浅说一下ts中的 type、typeof

type:TypeScript中的一个关键字,用于定义类型别名,也可以用它来定义接口类型,

使用type定义接口类型的方式称为类型别名

类型别名可以用来给一个类型起一个新的名字,使代码更加清晰易读,

它可以用于基本类型、联合类型、交叉类型、泛型等各种复杂类型的定义。


// 1、基本类型的别名:
	type ID = number
	type Name = string
	const id: ID = 123
	const lastname: Name = 'Alice'

// 2、联合类型的别名:
	type Result = string | number
	const res1: Result = 'success'
	const res2: Result = 123

// 3、交叉类型的别名:
	type PersonP = {
	  name: string
	  age: number
	}
	type Employee = {
	  company: string
	  position: string
	}
	type EmployeePerson = PersonP & Employee
	const employee: EmployeePerson = {
	  name: 'Alice',
	  age: 25,
	  company: 'ABC Corp',
	  position: 'Engineer'
	}

// 4、函数类型的别名:
	type Add = (a: number, b: number) => number
	const addd: Add = (a, b) => a + b
	const result = addd(2, 3)



typeof:是TypeScript中的一个关键字,用于获取给定值的类型,
typeof返回的是一个类型,而不是一个值,
它可以用于获取基本类型(如 stringnumberboolean)和复杂类型(如对象、数组)的类型信息

  1. 获取基本类型的类型:

const name = 'Alice'
type NameType = typeof name // 类型为 string

const age = 25
type AgeType = typeof age // 类型为 number

const isActive = true
type IsActiveType = typeof isActive // 类型为 boolean

  1. 获取对象的类型:

const person = { name: 'Bob', age: 30 }
type PersonType = typeof person // 类型为 { name: string, age: number }

  1. 获取数组的类型:

const numbers = [1, 2, 3, 4, 5]
type NumbersType = typeof numbers // 类型为 number[]

在这些例子中,
typeof用于获取相应值的类型,并将其赋值给一个类型变量,
这样就可以,在代码中使用,这些类型变量,来进行类型检查和自动补全

需要注意的是,
typeof返回的是一个类型,而不是一个值,
在类型注解中使用typeof时,不需要加上括号,
例如,type NameType = typeof name,而不是 type NameType = typeof(name)

你可能感兴趣的:(vue3,typeScript,typescript)