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 のサポート状況についてお話しました。

Avatar for sosukesuzuki

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 は?」