Hopp til innhold
i18n-error-base
Norsk
Esc
↑↓naviger↵åpne⌘Jforhåndsvis
På denne siden

API-referanse

Spesifikasjoner for I18nErrorBase, setErrorMessage og relaterte typer.

I18nErrorBase

En baseklasse for å utvide Error. message løses etter lang.

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

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

Typeparametre

Prop Type Default Description
TMeta ErrorMeta | undefined ErrorMeta | undefined Typen for meta. Angi undefined når den ikke brukes.

Statiske egenskaper

Prop Type Default Description
prefix? string undefined Legges til foran den løste meldingen.

Instansegenskaper

Prop Type Description
meta TMeta Hjelpeinfo fra konstruktøren. Kan leses og skrives.
message string Løses etter lang. Enumerable.
cause unknown Årsaken fra ErrorOptions. En standard Error-egenskap.

Konstruktør

Når TMeta ikke omfatter undefined, er meta påkrevd.

new MyError(meta, message, options?)

Når TMeta er undefined, kan meta utelates.

new MyError(message, options?)
new MyError(meta, message, options?)
Parameter Type Description
meta TMeta Hjelpeinfo for meldingsgenerering.
message string | MessageFactory<TMeta> Standardmeldingen for språk uten registrering. Funksjoner mottar meta.
options ErrorOptions Alternativer kompatible med det andre argumentet til Error (f.eks. { cause }).

Løsningsrekkefølge

  1. Hent lang fra getGlobalConfig() ("en" når den ikke er satt)
  2. Kjør den registrerte funksjonen for den klassen og det språket med meta
  3. Når uregistrert, bruk standardmeldingen
  4. Hvis static prefix er satt, legg det til foran

setErrorMessage

Registrerer meldingsfunksjoner per språk.

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

setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
Parameter Type Description
reference I18nErrorBaseConstructor En klasse som arver fra I18nErrorBase. Klasser uten arv er en typefeil.
message string | (meta) => string Meldingen som skal registreres. meta utledes fra målklassen.
lang string | Iterable<string> Målspråket. En enkelt kode eller et itererbart objekt (f.eks. en matrise).

Å registrere samme klasse og språk på nytt overskriver.

Typer

ErrorMeta

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

Standardbegrensningen for TMeta. Et skrivebeskyttet objekt med vilkårlige egenskaper.

ErrorOptions

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

En type avledet fra det andre argumentet til Error. Du kan sende cause.

MessageFactory<TMeta>

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

En funksjon som lager en melding fra meta. Brukes for både standard- og registrerte meldinger.

I18nErrorBaseParams<TMeta>

Konstruktørargumentenes overloads.

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

Utelat meta bare når TMeta er undefined.

I18nErrorBaseConstructor

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

Typen til det første argumentet til setErrorMessage.

Merknader

  • Standard-lang er "en". Bytt den eksplisitt med setGlobalConfig({ lang })
  • Ingen normalisering av språkkoder eller fallback-kjede (f.eks. en-US til en). Uregistrerte språk bruker standardmeldingen

Var denne siden nyttig?