コンテンツにスキップ
i18n-error-base
日本語
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

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 } など)です。

解決順序

  1. getGlobalConfig() の lang を取得します(未設定は "en")。
  2. 当該クラス・当該言語の登録関数を meta 付きで実行します。
  3. 未登録なら既定メッセージを使います。
  4. 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)はありません。未登録言語は既定メッセージです。

このページは役に立ちましたか?