Přejít k obsahu
i18n-error-base
Čeština
Esc
↑↓navigace↵otevřít⌘Jnáhled
Na této stránce

Referenční příručka API

Specifikace I18nErrorBase, setErrorMessage a souvisejících typů.

I18nErrorBase

Základní třída pro dědění z Error. message se resolvuje podle lang.

import { I18nErrorBase } from "i18n-error-base";

class MyError extends I18nErrorBase<{ code: string }> {}

Parametry typu

Prop Type Default Description
TMeta ErrorMeta | undefined ErrorMeta | undefined Typ meta. Když se nepoužívá, zadejte undefined.

Statické vlastnosti

Prop Type Default Description
prefix? string undefined Připojí se na začátek vyhodnocené zprávy.

Vlastnosti instance

Prop Type Description
meta TMeta Pomocné údaje konstruktoru. Lze číst i zapisovat.
message string Vyhodnocuje se podle lang. Je enumerovatelná.
cause unknown Příčina z ErrorOptions. Standardní vlastnost Error.

Konstruktor

Pokud TMeta nezahrnuje undefined, je meta povinné.

new MyError(meta, message, options?)

Pokud je TMeta typu undefined, lze meta vynechat.

new MyError(message, options?)
new MyError(meta, message, options?)
Parametr Typ Popis
meta TMeta Pomocné údaje pro generování zprávy.
message string | MessageFactory<TMeta> Výchozí zpráva pro jazyky bez registrace. Funkce přijímají meta.
options ErrorOptions Volby kompatibilní s druhým argumentem Error (např. { cause }).

Pořadí vyhodnocení

  1. Získá lang z getGlobalConfig() ("en", není-li nastaveno)
  2. Spustí registrovanou funkci pro danou třídu a jazyk s meta
  3. Není-li registrována, použije výchozí zprávu
  4. Je-li static prefix, připojí jej na začátek

setErrorMessage

Registruje funkce pro tvorbu zprávy pro jednotlivé jazyky.

import { setErrorMessage } from "i18n-error-base";

setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
Parametr Typ Popis
reference I18nErrorBaseConstructor Třída dědící z I18nErrorBase. Ostatní třídy jsou typovou chybou.
message string | (meta) => string Zpráva k registraci. meta se odvodí z cílové třídy.
lang string | Iterable<string> Cílový jazyk. Jednotlivý kód nebo iterovatelný objekt (např. pole).

Opětovná registrace stejné třídy a jazyka hodnotu přepíše.

Typy

ErrorMeta

type ErrorMeta = {
  readonly [prop: string]: unknown;
};

Výchozí omezení pro TMeta. Objekt jen pro čtení s libovolnými vlastnostmi.

ErrorOptions

type ErrorOptions =
  ConstructorParameters<typeof Error> extends [
    message?: unknown,
    options?: (infer TOptions) | undefined,
  ]
    ? TOptions
    : { readonly cause?: unknown };

Typ odvozený z druhého argumentu Error. Lze předat cause.

MessageFactory<TMeta>

interface MessageFactory<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> {
  (meta: TMeta): string;
}

Funkce generující zprávu z meta. Používá se pro výchozí i registrované zprávy.

I18nErrorBaseParams<TMeta>

Přetížení argumentů konstruktoru.

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];

Bez meta jen tehdy, je-li TMeta typu undefined.

I18nErrorBaseConstructor

interface I18nErrorBaseConstructor {
  new (...args: any): I18nErrorBase;
}

Typ prvního argumentu setErrorMessage.

Poznámky

  • Výchozí lang je "en". Přepínejte pomocí setGlobalConfig({ lang })
  • Bez normalizace kódů jazyků a fallback řetězce (např. en-US → en). Neregistrované jazyky používají výchozí zprávu

Byla tato stránka užitečná?