仕事ですぐに使えるTypeScriptを読んでいくその55

これは

TypeScriptの学習にとても役立ちそうなドキュメントを教えてもらったので
コツコツと読んでいく記事です。

参考

著作権者:フューチャー株式会社(Future Corporation)様

future-architect.github.io

ライブラリ開発のための環境設定

前回までは基本的な環境構築について触れてきました。
今日からはライブラリ開発のための環境設定になります。

やっぱりブラウザは難しいのではないか

TypeScriptもといJavaScriptはブラウザで表示します。(当たり前ですが)
そのときどれだけのブラウザを対象としてみなすか、が非常に難しいように思います。
流石にNetscapeはないでしょうけどIEだってまだ残っている場所もあるので、
対象とするブラウザはしっかり線引きをする必要がありそうです。
古いほうと同じくらい最新もまた同様に感じられます。
ブラウザのアップデートは非常に早く、追従していくのは非常に困難かと。
実際開発の現場ではどのように対処しているのか気になるところ。

可用性の高いライブラリの実現に向けた目標

資料では三つの目標が掲げられています。
 ・特別な環境を用意しないとエラーになったりするのは困る
  →ES5対応対応を考慮するなどの配慮が必要

 ・npm installしたら、型定義ファイルも一緒に入って欲しい
  →npmパッケージにバンドルしておくことで型情報が使えるようになるので
   ライブラリに添付しておく方が便利になる。

 ・今流行りのTree Shakingに対応しないなんてありえないよね?
  →Tree Shakingとはファイルをバンドルする際にデッドコードを除去する機能
   webpackやrollup.jsではES2015 modules形式を想定している。
   Node.jsでは--experimental-modulesの利用が必須で、拡張子も.mjsにしないといけないため
   TypeScriptでは対応しきれない。よってモジュール方式の違いで
   2種類のライブラリを出力する必要がある。

プロジェクトとしてやっていく場合バージョン問題を避けるためには
ユーザとの合意がどれだけしっかり取れるかが大事になってきそうです。
(どこでもきっとそうだとは思いますが...。)

今日はここまで。