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 ...

JavaScript, 覚書

string型から特定の文字列を除外した型を作ろうとしていたけど、これってそもそもTypeScriptでやることなのか疑問に思った。

普通にJavaScriptで条件を書いた方が直感的にわかりやすいし、要は使い道が正しいか ...

JavaScript

Object.seal を使うことでオブジェクトの既存のプロパティの変更のみを許可し、プロパティの追加や削除を無効化できます。

const data = {hoge: 'hoge'};Object.seal(da ...

JavaScript

result の結果は何になるでしょうか。

const result = 1 && 'tami';

正解は以下です。

'tami'

A && B は、Aがtrueに変 ...