Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Prettier の TypeScript 3.7 対応について

Prettier の TypeScript 3.7 対応について

2019年10月29日の nihonbashi.js での登壇です。
10月上旬に公開された TypeScript 3.7 のベータ版の Prettier のサポート状況についてお話しました。

sosukesuzuki

October 29, 2019
Tweet

More Decks by sosukesuzuki

Other Decks in Programming

Transcript

  1. TypeScript 3.7 - Optional Chaining - 現在 ECMAScript Stage 3

    のプロポーザル - Babel にはすでに入っている
  2. TypeScript 3.7 - Nullish Coalescing Operator - 現在 ECMAScript Stage

    3 のプロポーザル - Babel にはすでに入っている
  3. TypeScript 3.7 - Assertion Functions - 型に関する機能なので ECMAScript のプロポーザルとかではない -

    返り値に `asserts hoge is string` みたいなのを書いて型のアサートができる
  4. プリントの処理を書くのは(比較的)簡単 - もともと Babel の Optional Chaining と Nullish Coalescing

    には対応していた - Assertion Functions も class フィールドの declare キーワードも似たような構文が あったのでそんなに考えることはなさそうだった
  5. Prettier のサポートしている Node のバージョン - GitHub からの直接インストール - package.json に

    “prettier/prettier” を指定することでインストールできる - これは 1.18.2 では Node 6 までサポートしている - バージョン指定してインストール(トランスパイル済み) - 1.18.2 現在で Node 4 までサポートしている
  6. babel-ts パーサー - Babel の TypeScript パーサーを使おうという話 - TS 3.7

    が公開される前から babel-ts パーサーを入れる PR は出ていた - Babel にはもともと Optional Chaining と Nullish Coalescing は入っているのでい けるのでは? - (1.19には入らなさそう) - Assertion Functions と class フィールドの declare キーワードはまだ babel/parser が対応してないので使えない - なのであくまで回避策
  7. 案1: フォークしてNode6をサポートする - typescript-estree を Prettier 側でフォークして Node 6 をサポートできるように修

    正して使おうという案 - 「メンテコストがしんどそう...」「もしやるなら 2.0 のリリースを急がないと...」
  8. 案2: GitHub インストールの Node 6 をドロップする - GitHub からの直接インストールの Node

    6 をドロップする - バージョン指定インストールの場合トランスパイルして Node 6 をサポートし続けら れる - 「メジャーバージョンあげずに Node 6 を切っていいの?Semver は?」