Naar inhoud springen
i18n-error-base
Nederlands
Esc
↑↓navigeren↵openen⌘Jvoorbeeld
Op deze pagina

API-referentie

De specificatie van I18nErrorBase, setErrorMessage en de bijbehorende typen.

I18nErrorBase

De basisklasse om Error te overerven. message wordt opgelost volgens lang.

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

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

Typeparameters

Prop Type Default Beschrijving
TMeta ErrorMeta | undefined ErrorMeta | undefined Het type van meta. Geef undefined op als je deze niet gebruikt.

Statische properties

Prop Type Default Beschrijving
prefix? string undefined Wordt vooraan het opgeloste bericht geplaatst.

Instantieproperties

Prop Type Beschrijving
meta TMeta Aanvullende info uit de constructor. Leesbaar en schrijfbaar.
message string Wordt opgelost volgens lang. Enumerable.
cause unknown De oorzaak uit ErrorOptions. Een standaardproperty van Error.

Constructor

Als TMeta geen undefined bevat, is meta verplicht.

new MyError(meta, message, options?)

Als TMeta undefined is, kun je meta weglaten.

new MyError(message, options?)
new MyError(meta, message, options?)
Parameter Type Beschrijving
meta TMeta Aanvullende info voor het genereren van berichten.
message string | MessageFactory<TMeta> Het standaardbericht voor talen zonder registratie. Functies ontvangen meta.
options ErrorOptions Opties compatibel met het tweede argument van Error (zoals { cause }).

Oplossingsvolgorde

  1. Haalt lang op uit getGlobalConfig() ("en" indien niet ingesteld)
  2. Voert de geregistreerde functie voor die klasse en taal uit met meta
  3. Indien niet geregistreerd, wordt het standaardbericht gebruikt
  4. Indien static prefix is ingesteld, wordt deze vooraan geplaatst

setErrorMessage

Registreert berichtgenererende functies per taal.

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

setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
Parameter Type Beschrijving
reference I18nErrorBaseConstructor Een klasse die I18nErrorBase overerft. Klassen zonder overerving geven een typefout.
message string | (meta) => string Het te registreren bericht. Het type van meta wordt afgeleid van de doelklasse.
lang string | Iterable<string> De doeltaal. Eén code of een itereerbaar object (zoals een array).

Opnieuw registreren voor dezelfde klasse en taal overschrijft.

Typen

ErrorMeta

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

De standaardbeperking voor TMeta. Een alleen-lezen object met willekeurige properties.

ErrorOptions

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

Een type afgeleid van het tweede argument van Error. Je kunt er cause in doorgeven.

MessageFactory<TMeta>

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

Een functie die uit meta een bericht genereert. Voor zowel standaard- als geregistreerde berichten.

I18nErrorBaseParams<TMeta>

Overloads van constructorargumenten.

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

Alleen als TMeta undefined is, mag je meta weglaten.

I18nErrorBaseConstructor

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

Het type van het eerste argument van setErrorMessage.

Aanvullingen

  • De standaardwaarde van lang is "en". Schakel expliciet met setGlobalConfig({ lang })
  • Geen normalisatie van taalcodes of fallbackketen (bijv. en-US naar en). Niet-geregistreerde talen krijgen het standaardbericht

Was deze pagina nuttig?