Tag: typescript

WordPress でブログを運用していたとき、記事中のソースコードのシンタックスハイライトは Code Syntax Block というプラグインを利用していました。このプラグインは、Prism を WordPress […]

本ブログを WordPress から WordPress + Next.js の Jamstack 構成にアップデートしました。色々と学びがあったので、アウトプットしておきます。WordPress との連携については、こ […]

EventEmitterの型

EventEmitterの型付けのサンプル。イベント名もちゃんと型推論させたい。

バリデーションエラーの場合に例外をスローするとき、カスタムエラーを投げると捕捉しやすくなる。 `e instanceof DateIsInTheFutureError` でエラーの種類を判定している。 この方法だと、コメ […]

非nullアサーション

DOMの実装で、getElementById(dialog.id)とした場合にnullの可能性がある、とエラーが出る場合がある。 プログラマは指定のDOMが存在することは把握しているが、TypeScriptは把握できてい […]

booleanを返す関数について、その関数がbooleanを返すというだけでは不十分な場合がある。 こう書いた場合、toUpperCaseでエラーになる。inputがstringかnumberかわからないから。 型の絞り […]

通常タプル型は以下のように定義する。 推論された型は (number|boolean)[] となる。 これだと、aにnumberかbooleanをpushできてしまうなど厳密なタプルにならない。 厳密にする場合にタプル生 […]

以下のようなコードがあったとする。 2つ目のevent.targetはHTMLElementのみを期待したが、HTMLInputElementも含まれてしまう。なぜか。 handleがUserEvent型のパラメーターを […]

JavaScriptやTypeScriptにはmixinの機能は無いが実装することができる。mixinは 状態(インスタンスプロパティ)を持つことができる。 抽象メソッドでないものだけを提供できる。 コンストラクターを持 […]

クラスを宣言するときに implements キーワードを使うと、そのクラスが特定のインターフェースを満たしていることを表現できる。typeでも可能。 インターフェースはインスタンスプロパティを宣言することができるが、p […]