TypeScript 実装から型をつくる方が良いケース
TypeScriptを使う場合は、普通は設計である型を先に定義し、それを元に実装をします。
しかし、逆に実装から型を作った方が良いケースもあります。そういう場合は typeof を使います。
type T1 = ...
TypeScript タプル型からユニオン型を作る方法
TypeScriptの少し変わった書き方です。
タプル型から、要素のユニオン型を作成します。T1のところがミソです。
type T1 = type T2 = T1//"hoge" | " ...
TypeScript {name: string} & string という型が never にならない理由
以下のような型があるとします。
type T1 = {name: string} & stringT1 は never にはなりません。
一見すると、name というプロパティを持つオブジェクト、かつ、文字列と ...
TypeScript Readonlyを使ってオブジェクトのプロパティを変化させない(副作用の防止)
関数の引数でオブジェクトを受け取り、そのオブジェクトの特定のプロパティの値を変更してオブジェクトを返す関数を考えてみます。
type T1 = { name: string age: number favor: { name: ...
TypeScript Array.prototype.every の型推論
配列のeveryを使うときに、型を狭めてほしいところで、TypeScriptがうまく推論してくれないことがあります。
const numbersOrStrings: (number | string);if(numbersOrS ...
おいしい牛乳が流通しない理由
各酪農家でできた牛乳は農協に送られます。
そして、農協では各酪農家の牛乳を均一になるように混ぜます。
それをメーカーに売ります。
おいしい牛乳をつくる酪農家もいればそうでない酪農家もいます。 ...
お米の四分の一は無料で流通しているという話
お米の四分の一は無料で流通しているそうです。
これは、お金を払わずにお米を手に入れている人が全体の四分の一存在するということになります。
無料で手に入れている、というのはどういうことか。
おそらく、 ...
阿寺渓谷にいってきた
長野県の大桑村にある阿寺(あてら)渓谷にいってきました。
阿寺渓谷にある昔使われていた森林鉄道阿寺渓谷の水は透き通るようなブルーでとてもきれいでした。
上の写真はあまりブルーで ...
TypeScript オブジェクトに指定したキーがあるかをチェックする
主に unknown な値をオブジェクト型に狭めて、その後に特定のプロパティにアクセスしたい場合の話。
const hasProp = <K extends PropertyKey>(data: object, pr ...
覚書 io-tsでエラーオブジェクトをバリデーションする
残念ながら現在の実装ではio-tsでErrorオブジェクトをバリデーションすることはできない。
以下のissueが起票されているので、こちらをモニタリングする。