对于复合属性,我们可以使用type自定义类型

    1. type Article = {
    2. title: string,
    3. price: number,
    4. vat: number,
    5. stock: number,
    6. description: string
    7. }

    当给这个类型的变量赋值时,如果缺少某个属性,TS会用红线标出来
    image.png
    如果某个属性是多余的,也会标出来
    image.png
    但是,如果你提前声明一个对象,这个对象包含了Article需要的所有属性,即使有多余的属性,
    将它赋值给Article类型的变量,TS不会报错
    image.png
    但是你想在VSCode里读取这个多余的属性是不行的(编译运行时这个多余的属性还是存在的)
    image.png
    将对象作为函数参数同理,即使有多余的属性也不会报错
    image.png
    但是你读取不到这个多余的属性
    image.png