タグ

ブックマーク / numb86-tech.hatenablog.com (2)

  • TypeScript における変性(variance)について - 30歳からのプログラミング

    プログラミングの型システムに関する記事を読んでいると、共変や反変といった用語が出てくることがある。 TypeScript や Flow についての記事でも、見かけることがある。 それらは TypeScript を使う上で必須の知識ではないが、把握しておくに越したことはない。 この記事では、TypeScript を題材にして、変性について説明していく。 TypeScript に関する議論を理解できるようになることがこの記事の目的であり、より詳細な、学術的、数学的な内容には踏み込まない。 この記事の内容は、TypeScript のv3.9.5で動作確認している。 変性 変性(variance)とは、任意の型Tに対してどのような性質を持つのか示したものであり、以下の 4 種類がある。 不変性(invariance) Tそのものが必要 共変性(covariance) Tそのものか、そのサブタイプが

    TypeScript における変性(variance)について - 30歳からのプログラミング
  • TypeScript で npm パッケージを作る - 30歳からのプログラミング

    TypeScript で書いたプログラムを npm パッケージとして配布する手順を書いていく。 まだ npm パッケージの配布をしたことがない人を、想定読者としている。 よりよい書き方、詳細な設定、は措いておき、まずは最低限の要件を満たすものを作り上げる。 今回の「最低限の要件」は以下。 npm installやyarn addでインストールできる importでもrequireでもインポートすることが出来る 型定義ファイルを同梱し、TypeScript アプリにもスムーズに導入できる require(CommonJS)にも対応させるかどうかはライブラリの性質によって異なると思うが、今回は対応する。 npm パッケージに限らず、粗削りでいいから最初から最後まで動くものをまずは作り、あとから必要に応じて勉強や調査をすればいいと思っている(セキュリティやコンプライアンスに関わることは除く)。今

    TypeScript で npm パッケージを作る - 30歳からのプログラミング
  • 1