TypeScript if と switch のどちらを使うかの一つのポイント
TypeScript で if と swtich のどちらを使うかの一つのポイントについて紹介です。
前提として、以下があるとします。
ある関数があり、その関数の引数にユニオン型を受け取る関数内ではユニオン型 ...
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が起票されているので、こちらをモニタリングする。
TypeScript オブジェクトのリテラルを推論する場合はタグをつけると良い
以下のコードは、 T2 に hoge プロパティが存在しない、というエラーになります。
type T1 = { hoge: string}type T2 = { foo: number}const myFunc = (value ...
TypeScriptであまり頑張らなくて良いと思う部分
最近、TypeScriptでできるだけanyをなくそうとしているのですが、エラー系のオブジェクトが結構型が緩くて困っています。
例えば ErrorEvent は error というプロパティがありますが、any なのでその ...