概要
拡張メソッドの実装で基本型+staticメソッドの定義方法を記載する。
インスタンスメソッドへの拡張は以下の記事を参照ください。
動作環境
- TypeScript 3.7.x
実装方法
- TypeScriptの
lib.d.ts
内に基本型の型定義があるので、そこで拡張したい基本型を探す。 - Stringの場合、
StringConstructor
として定義されているので、定義を追加する。 - Stringに対して直接実装を追加する。
サンプルソース
string.extensions.ts
拡張メソッドの定義側です。今回はString
に拡張メソッドを追加します。
export {}; // 拡張メソッドの定義 declare global { interface StringConstructor { isEmpty(value: string): boolean; } } // 拡張メソッドの実装側 String.isEmpty = function(value: string): boolean { return value === ''; };
呼び出し側
import
後、拡張した型にメソッドが追加される。
// 呼び出したい拡張メソッドをimport import './string.extensions'; export function check(value: string): void { if (String.isEmpty(value)) { console.log('value is empty.'); } }
想定ケース
- ステートをもたないutil系のfunctionを基本型に追加したい時に便利です。