Към съдържанието
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 Помощна info от конструктора. Достъпна за четене и писане.
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 Помощна info за генериране на съобщения.
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). Нерегистрираните езици дават съобщението по подразбиране

Беше ли полезна тази страница?