ts类型别名
类型别名的用法 type nameType = string | string[] let zhangName :nameType = "张三" let zhangName1 :nameType
ts类型别名
发布时间:2023-10-12 (2023-10-12)

类型别名的用法

type nameType = string | string[]

let zhangName :nameType = "张三"
let zhangName1 :nameType = ["张三"]

可以用来定义函数

type fn = (name: string, age: number) => string


let fn1: fn = function (name: string, age: number): string {
    return "xxx"
}

let fn2: fn = (name: string, age: number): string => "xxx"

也可以用来定义对象

type infoType = {
    readonly name: string,
    age?: number
}

let zhangsan:infoType = {
    name: "张三",
}

和interface的区别

  1. interface可以继承 type 只能通过 & 交叉类型合并
interface I1{
    name: string
}
interface I2 extends I1{
    age: string
}


type T1 = {
    name: string
}
type T2 = {
    age: number
}

let t:T1&T2 = {
    name:"张三",
    age: 12
}
  1. type 可以定义 联合类型 和 可以使用一些操作符 interface不行
type nameType = string|string[]
  1. interface 遇到重名的会合并 type 不行
interface A1 {
    name: string
}
// 遇到相同的会合并
interface A1{
    age: number
}

let a1:A1={
    name:"A1",
    age: 13
}

type A1 = {
    name: string
}

// 会直接报错
type A1 ={
    
}