TypeScript

TypeScript で if と swtich のどちらを使うかの一つのポイントについて紹介です。

前提として、以下があるとします。

ある関数があり、その関数の引数にユニオン型を受け取る
関数内ではユニオン型 ...

TypeScript

TypeScriptを使う場合は、普通は設計である型を先に定義し、それを元に実装をします。

しかし、逆に実装から型を作った方が良いケースもあります。そういう場合は typeof を使います。

type T1 = &# ...

TypeScript

TypeScriptの少し変わった書き方です。

タプル型から、要素のユニオン型を作成します。T1のところがミソです。

type T1 = type T2 = T1//"hoge" | " ...

TypeScript

以下のような型があるとします。

type T1 = {name: string} & string

T1 は never にはなりません。

一見すると、name というプロパティを持つオブジェクト、かつ、文字列と ...

TypeScript

関数の引数でオブジェクトを受け取り、そのオブジェクトの特定のプロパティの値を変更してオブジェクトを返す関数を考えてみます。

type T1 = { name: string age: number favor: { name: ...

TypeScript

配列のeveryを使うときに、型を狭めてほしいところで、TypeScriptがうまく推論してくれないことがあります。

const numbersOrStrings: (number | string);if(numbersOrS ...

TypeScript

主に unknown な値をオブジェクト型に狭めて、その後に特定のプロパティにアクセスしたい場合の話。

const hasProp = <K extends PropertyKey>(data: object, pr ...

JavaScript, TypeScript

残念ながら現在の実装ではio-tsでErrorオブジェクトをバリデーションすることはできない。

以下のissueが起票されているので、こちらをモニタリングする。

TypeScript

以下のコードは、 T2 に hoge プロパティが存在しない、というエラーになります。

type T1 = { hoge: string}type T2 = { foo: number}const myFunc = (value ...

TypeScript

最近、TypeScriptでできるだけanyをなくそうとしているのですが、エラー系のオブジェクトが結構型が緩くて困っています。

例えば ErrorEvent は error というプロパティがありますが、any なのでその ...