类型声明比类型断言更加严格
# 类型断言
interface Animal {
name: string
}
interface Cat {
name: string
run(): void
}
let tom: Animal = {
name: 'tom'
}
let cat = tom as Animal // 成立
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
接口Animal
和接口Cat
相当于类的继承关系class Cat extend Animal
,因为父类可以断言为子类,所以成立
# 类型声明
interface Animal {
name: string
}
interface Cat {
name: string
run(): void
}
let tom: Animal = {
name: 'tom'
}
let cat: Cat = tom // 不成立,Cat类型中的run在Animal类型中不存在,不能完成赋值,类型不兼容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14