使用Prettier,我注意到此代码块的格式设置为包含额外的前导管道,请参阅以下示例:
// before Prettier
let foo: {
[k: string]: any
} | boolean;
// after Prettier
const actions:
| {
[k: string]: any;
}
| boolean = true;
请注意 Prettier 在类型声明中添加的管道。
这也可以在一行中声明,并且更漂亮的保留格式而不添加额外的管道:
const actions: { [k: string]: any } | boolean = true;
我的疑问是为什么要添加这个管道?它会在打字稿级别更改任何内容吗?
这纯粹是风格上的,没有功能上的区别。
请考虑以下事项:
type Foo = Bar
| Baz
| Bap
与此相比:
type Foo =
| Bar
| Baz
| Bap
第二个例子要干净得多,很明显,|
右侧的三件事是工会的组成部分。
显然,在一行上定义所有内容时,您不会添加前导|
:
type T = A | B