Type注解对象类型

Type注解对象

在TS中对于对象数据的类型注解,除了使用interface之外还可以使用类型别名来进行注解,作用相似

type Person = {
    name: string
    age: number
}

let people: Person = {
    name: '张三',
    age: 16
}

console.log(people)

在这里插入图片描述

Type继承

type同样也可以像interface一样继承,就是type + 交叉类型模拟继承,同样可以实现类型复用

type Father = {
    name: string
    sex: string
    job: string
}

let father: Father = {
    name: '乔治',
    sex: '男',
    job: '苦逼大学生'
}

console.log(father)

type Son = Father & {
    time: string
}

let son: Son = {
    name: 'pig',
    sex: '男',
    job: '敲代码',
    time: '全天',
}

console.log(son)

在这里插入图片描述

疑惑

不知道大家有没有疑惑,是不是感觉interfacetype是不是有些类似呢?

interfacetype对比

相同点
  1. 都能描述对象类型
  2. 都能实现继承,interface使用extends, type配合交叉类型
不同点
  1. type除了能描述对象还可以用来自定义其他类型
  2. 同名的interface会合并(属性取并集,不能出现类型冲突),同名type会报错
使用哪个更好呢?

在注解对象类型的场景下非常相似,推荐大家一律使用type, type更加灵活

思考题

如何将下方的数据集转为type注解
在这里插入图片描述

type Data = {
    title: string
    content: string
}

type response = {
    code: number
    msg: string
    data: Data
}

let message: response = {
    code: 500,
    msg: '成功',
    data: {
        title: '熟练使用',
        content: 'Typescript'
    }
}

console.log(message)

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值