TypeScript

TypeScriptのenumは安全に使用するにあたっていくつかの落とし穴があります。

今回はenumへの数値の割当のご紹介です。

const enum MyEnum { Hoge, Foo, Bar}let a = ...

TypeScript

TypeScriptのタプルを使うことで、固定長の配列の型を定義することができます。

以下は、一つ目の要素にユーザー名(string)、二つ目の要素に年齢(number)を持つタプルの定義です。

type User ...

TypeScript

インデックスシグネチャを使用することで明示的に宣言したオブジェクトのキー以外で、型を宣言することができます。

type Hoge = { id: number : string}

Hoge型はidというプロパティを持ち、その ...

TypeScript

オブジェクトリテラル型に存在しないプロパティがある場合に、過剰プロパティチェックの働きによってエラーが発生します。

例えば以下のコードでは、Data型にはinvalidというプロパティは定義されていませんので、過剰なプロパ ...

TypeScript

たまに見る {} は、空のオブジェクトのようなので object 型と同じようなものかと思いきや、実は直感とは違う動きをするので注意です。

実際は null と undefined を除いたすべての型を入れることができます ...

TypeScript

anyとunknownにはどんな値も代入できます。これは同じです。

以下はどちらもコンパイルエラーになりません。

let a: any = 100;let c: unknown = 100;

anyとunknow ...

JavaScript, TypeScript

javascriptで以下のコードを書いた時に、結果は’5’になります。

5 + []//文字列の5

人間がやろとしたことを予測していい感じに変換してくれているように見えます。

しかし、逆 ...

TypeScript

Animal型とDog型があるとします。AnimalはDogのスーパークラスのような位置付けです。

type Animal = 'Dog' | 'Cat' | 'Tami'type ...

TypeScript

string | number は string のスーパークラスなので、child に (_: string) =>console.log(‘child’)は入れられるべきではない。

type Pare ...

JavaScript, TypeScript

strictNullChecksがfalseの場合、すべての型にnullもしくはundefinedを入れることができます。

type Hoge = stringconst str1: Hoge = null//エラーにならないc ...