TypeScript

スポンサーリンク
TypeScript

【入門編】引数に渡す関数の「引数の数(Arity)」を型レベルで制限するテクニック – TypeScript コア・型システムの基礎解析バイブル

こんにちは!TypeScriptの型システムの世界へようこそ。日々フロントエンドからバックエンドまでコードを書いていると、「あ、この高階関数には、引数を1つだけ取る関数(コールバック)を渡してほしいのに、うっかり2つも3つも取る関数を渡され...
TypeScript

【テクニカル・上級編】関数型における「Template Literal Types」を用いた、引数名の動的バリデーション – TypeScript コア・型システムの基礎解析バイブル

テンプレートリテラル型による関数引数のコンパイル時バリデーション:型システムをランタイムの盾にする極限技法TypeScriptの型システムは、単なるドキュメンテーションツールでもなければ、エディタの補完をリッチにするための玩具でもない。それ...
TypeScript

【実務・中級編】関数型における「Template Literal Types」を用いた、引数名の動的バリデーション – TypeScript コア・型システムの基礎解析バイブル

こんにちは。テクニカルリードの私だ。今日のコードレビューで、また「文字列のバリデーションをランタイムの`.match()`や`if`文の山に頼っている」コードを見かけた。「動的に渡される文字列のフォーマットを保証したい」「特定のプレフィック...
TypeScript

【入門編】関数型における「Template Literal Types」を用いた、引数名の動的バリデーション – TypeScript コア・型システムの基礎解析バイブル

こんにちは!TypeScriptの型システムの世界へようこそ。日々フロントエンドからバックエンドまでコードを書いていると、「この文字列は、特定のルールに則ったものだけを受け付けたいのに、普通の `string` 型だと何でも通ってしまって不...
TypeScript

【テクニカル・上級編】引数に渡す「クラスのコンストラクタ」を型定義し、DIコンテナ的な実装を行う – TypeScript コア・型システムの基礎解析バイブル

コンパイラの深淵とDIコンテナ:クラスコンストラクタ型定義の極限最適化TypeScriptの型システムは、単なる静的解析の道具ではない。それはコンパイル時におけるメタプログラミングの実行環境であり、V8等のJavaScriptエンジンにおけ...
TypeScript

【実務・中級編】引数に渡す「クラスのコンストラクタ」を型定義し、DIコンテナ的な実装を行う – TypeScript コア・型システムの基礎解析バイブル

【TypeScript】DIコンテナの心臓部:コンストラクタ型とジェネリクスを極限まで型安全にする設計術コードレビューをしていて、よくこんな実装に出くわさないだろうか?// 良くあるアンチパターンclass UserService {}fu...
TypeScript

【入門編】引数に渡す「クラスのコンストラクタ」を型定義し、DIコンテナ的な実装を行う – TypeScript コア・型システムの基礎解析バイブル

こんにちは!TypeScriptの型システムの世界へようこそ。フロントエンドからバックエンドまで、TypeScriptであらゆるアーキテクチャを設計していく中で、「クラスのコンストラクタを引数に受けて、いい感じにインスタンスを生成・管理する...
TypeScript

【テクニカル・上級編】「関数型」の引数定義における「共変性(Covariance)」の罠と回避策 – TypeScript コア・型システムの基礎解析バイブル

関数型における「共変性」の罠:TypeScript型システムの深淵と安全な設計防壁TypeScriptの型システムは、その利便性の裏に、構造的部分型付け(Structural Subtyping)という強力かつ危険な諸刃の剣を隠し持っている...
TypeScript

【実務・中級編】「関数型」の引数定義における「共変性(Covariance)」の罠と回避策 – TypeScript コア・型システムの基礎解析バイブル

開発チームのコードレビューをしていて、最もゾッとする瞬間の一つが、「関数型(Callback / Handler)」を引数に取るインターフェースの設計ミスに気づいた時だ。TypeScriptの構造的部分型付け(Structural Subt...
TypeScript

【入門編】「関数型」の引数定義における「共変性(Covariance)」の罠と回避策 – TypeScript コア・型システムの基礎解析バイブル

こんにちは!TypeScriptの型システムの世界へようこそ。日々フロントエンドからバックエンドまでバリバリコードを書いていると、「あれ? この関数、本当はエラーになってほしいのに、なぜかスルーされてバグった……」なんて経験はありませんか?...
スポンサーリンク