interface Shape {
color: string
}
interface Square extends Shape {
sideLength: number
}
let square = {} as Square // 我觉得这一行有问题,应该报错
square.color = 'blue'
square.sideLength = 10
老师这一句代码有疑惑 【 let square = {} as Square 】
Square 接口本身有一个 sideLength 成员,它继承了 Shape 接口也就拥有了 color 成员。sideLength 和 color 都不是可选属性,但 square 变量在声明的时候只是给赋值给一个空的对象字面量。虽然通过类型断言告诉检查器它是一个 Square 类型的,但它的值还是一个空对象,没有 Square 类型的特征呀。