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)
标签:string,对象,type,类型,interface,注解,Type,name
From: https://blog.csdn.net/scq_king/article/details/137264953