API リファレンス
I18nErrorBase、setErrorMessage、関連する型の仕様です。
I18nErrorBase
Error 継承用の基底クラスです。message は lang に応じて解決します。
import { I18nErrorBase } from "i18n-error-base";
class MyError extends I18nErrorBase<{ code: string }> {}
型パラメーター
| Prop | Type | Default | Description |
|---|---|---|---|
TMeta |
ErrorMeta | undefined |
ErrorMeta | undefined |
meta の型です。使わない場合は undefined を指定します。 |
静的プロパティー
| Prop | Type | Default | Description |
|---|---|---|---|
prefix? |
string |
undefined |
解決後の先頭に連結します。 |
インスタンスプロパティー
| Prop | Type | Description |
|---|---|---|
meta |
TMeta |
コンストラクターの付随情報。読み書きできます。 |
message |
string |
lang に応じて解決します。列挙できます。 |
cause |
unknown |
ErrorOptions の原因。Error 標準のプロパティーです。 |
コンストラクター
undefined を含まなければ meta は必須です。
new MyError(meta, message, options?)
TMeta が undefined なら meta を省略できます。
new MyError(message, options?)
new MyError(meta, message, options?)
| パラメーター | 型 | 説明 |
|---|---|---|
meta |
TMeta |
メッセージ生成用の付随情報です。 |
message |
string | MessageFactory<TMeta> |
未登録言語用の既定メッセージ。関数は meta を受け取ります。 |
options |
ErrorOptions |
Error 第 2 引数と互換のオプション({ cause } など)です。 |
解決順序
getGlobalConfig()のlangを取得します(未設定は"en")。- 当該クラス・当該言語の登録関数を
meta付きで実行します。 - 未登録なら既定メッセージを使います。
static prefixがあれば先頭に付けます。
setErrorMessage
言語ごとのメッセージ生成関数を登録します。
import { setErrorMessage } from "i18n-error-base";
setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
| パラメーター | 型 | 説明 |
|---|---|---|
reference |
I18nErrorBaseConstructor |
I18nErrorBase 継承クラス。非継承クラスは型エラーです。 |
message |
string | (meta) => string |
登録メッセージ。meta の型は対象クラスから推論されます。 |
lang |
string | Iterable<string> |
対象言語。単一コードか反復可能オブジェクト(配列など)です。 |
同クラス・同言語への再登録は上書きします。
型
ErrorMeta
type ErrorMeta = {
readonly [prop: string]: unknown;
};
TMeta の既定制約です。任意プロパティーの読み取り専用オブジェクトです。
ErrorOptions
type ErrorOptions =
ConstructorParameters<typeof Error> extends [
message?: unknown,
options?: (infer TOptions) | undefined,
]
? TOptions
: { readonly cause?: unknown };
Error 第 2 引数から導出した型です。cause を渡せます。
MessageFactory<TMeta>
interface MessageFactory<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> {
(meta: TMeta): string;
}
meta からメッセージを作る関数です。既定メッセージと登録値の両方で使います。
I18nErrorBaseParams<TMeta>
コンストラクター引数のオーバーロードです。
type I18nErrorBaseParams<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> =
[TMeta] extends [undefined]
?
| [message: string | MessageFactory<TMeta>, options?: ErrorOptions | undefined]
| [meta: undefined, message: string | MessageFactory<TMeta>, options?: ErrorOptions | undefined]
: [meta: TMeta, message: string | MessageFactory<TMeta>, options?: ErrorOptions | undefined];
undefined のときだけ meta を省略できます。
I18nErrorBaseConstructor
interface I18nErrorBaseConstructor {
new (...args: any): I18nErrorBase;
}
setErrorMessage 第 1 引数の型です。
補足
langの既定は"en"です。setGlobalConfig({ lang })で切り替えてください。- 言語コードの正規化やフォールバックチェーン(例:
en-US→en)はありません。未登録言語は既定メッセージです。