Skip to main content

ts

declare:

declare 关键字用于声明全局变量、类型或模块,通常在类型定义文件(如 .d.ts 文件)中使用。

  • 它告诉 TypeScript 编译器这些变量或类型在其他地方已经定义过了,编译器不需要为它们生成代码。

    • 例如,在 global.d.ts 文件中,declare namespace Menudeclare interface ViteEnv 是在全局范围内声明的。
  1. type:
    • type 用于定义类型别名。它可以用于基本类型、联合类型、交叉类型、元组等。
    • 类型别名可以是任何合法的 TypeScript 类型表达式。
    • 例如,type Recordable<T = any> = Record<string, T>; 是一个类型别名,用于定义一个具有任意键和值的对象
  2. interface:
    • interface 用于定义对象的结构。它可以描述对象的属性和方法。
    • 接口可以扩展其他接口或类型,允许更灵活的类型组合。
    • 接口通常用于描述类的形状或对象的结构。
    • 例如,interface MenuOptionsinterface MenuInfo 是用来描述对象的结构。 区别
  • 扩展性interface 可以通过 extends 关键字扩展其他接口,而 type 则通过交叉类型(&)来实现类似的功能。
  • 合并:多个同名的 interface 会自动合并,而 type 不会。
  • 用途interface 更适合用于描述对象的形状,而 type 更适合用于复杂类型的组合和别名。 在实际使用中,选择 interface 还是 type 主要取决于具体的需求和个人偏好。一般来说,interface 更适合用于定义对象的结构,而 type 更适合用于定义复杂类型或联合类型。