鈴木颯介のブログ

Prettier にコントリビュートした(13)

解決した Issue

https://github.com/prettier/prettier/issues/6303

カッコで囲まれたながーい Union Types をなんらかの演算でつないだときに閉じカッコで改行されないバグです

// Input
const foo = [abc, def, ghi, jkl, mno, pqr, stu, vwx, yz] as (
  | string
  | undefined
)[];

// Output
const foo = [abc, def, ghi, jkl, mno, pqr, stu, vwx, yz] as (
  | string
  | undefined)[];

本当はフォーマット前と同じアウトプットが期待されます。 ちなみにこれはasだけじゃなくてkeyofや Union Types、Intersection Types、Array Types でも起こるので修正するときはそれにも対応する必要があります。

出した PR

https://github.com/prettier/prettier/pull/6307

hasParensという変数があって、それを満たせばよしなにフォーマットされることがわかったので上記の条件に当てはまるように修正。

感想

PR 書いてから結構時間が経ってこれを書いたせいで何をしたのかあんまり覚えていない、、、