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)

疑惑
不知道大家有没有疑惑,是不是感觉interface和type是不是有些类似呢?
interface和type对比
相同点
- 都能描述对象类型
- 都能实现继承,
interface使用extends,type配合交叉类型
不同点
type除了能描述对象还可以用来自定义其他类型- 同名的
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)

7138

被折叠的 条评论
为什么被折叠?



