在 Typescript 上声明类型时,前导管道的建议是什么

a--*_*--m 2 javascript typescript prettier

使用 Preettiefier 我注意到这个代码块被格式化为包含一个额外的前导管道,请参见以下示例:

// before Prettier
let foo: {
    [k: string]: any
} | boolean;

// after Prettier
const actions:
  | {
      [k: string]: any;
    }
  | boolean = true;
Run Code Online (Sandbox Code Playgroud)

注意 Prettier 在类型声明中添加的管道。

这也可以在一行中声明,prettier 保持格式而不添加额外的管道:

const actions: { [k: string]: any } | boolean = true;
Run Code Online (Sandbox Code Playgroud)

我的疑问是为什么要添加这个管道?它在 Typescript 级别有什么改变吗?

bug*_*ugs 6

它纯粹是风格上的,没有功能上的区别。

考虑以下:

type Foo = Bar
  | Baz
  | Bap
Run Code Online (Sandbox Code Playgroud)

与此相比:

type Foo =
  | Bar
  | Baz
  | Bap
Run Code Online (Sandbox Code Playgroud)

第二个例子更简洁,很明显|s右侧的三个东西是联合的组成部分。

显然,|在一行定义所有内容时,您不会添加前导:

type T = A | B
Run Code Online (Sandbox Code Playgroud)