WordPress でブログを運用していたとき、記事中のソースコードのシンタックスハイライトは Code Syntax Block というプラグインを利用していました。このプラグインは、Prism を WordPress […]
Tag: typescript
本ブログを WordPress から WordPress + Next.js の Jamstack 構成にアップデートしました。色々と学びがあったので、アウトプットしておきます。WordPress との連携については、こ […]
バリデーションエラーの場合に例外をスローするとき、カスタムエラーを投げると捕捉しやすくなる。 `e instanceof DateIsInTheFutureError` でエラーの種類を判定している。 この方法だと、コメ […]
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 […]