Пређи на садржај
i18n-error-base
Српски
Esc
↑↓навигација↵отвори⌘Jпреглед
На овој страници

АПИ референца

Спецификација за 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.

Конструктор

Ако TMeta искључује 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 Опције компатибилне са 2. аргументом Error (нпр. { cause }).

Редослед разрешавања

  1. Преузима lang из getGlobalConfig() ("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 };

Тип изведен из 2. аргумента Error. Може се проследити 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];

meta се изоставља само када је TMeta undefined.

I18nErrorBaseConstructor

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

Тип 1. аргумента setErrorMessage.

Напомене

  • Подразумевани lang је "en". Промените са setGlobalConfig({ lang })
  • Нема нормализације кодова ни ланца замене (нпр. en-US → en). Нерегистровани језици дају подразумевану поруку

Да ли вам је ова страница помогла?