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
- Haalt
langop uitgetGlobalConfig()("en"indien niet ingesteld) - Voert de geregistreerde functie voor die klasse en taal uit met
meta - Indien niet geregistreerd, wordt het standaardbericht gebruikt
- Indien
static prefixis 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
langis"en". Schakel expliciet metsetGlobalConfig({ lang }) - Geen normalisatie van taalcodes of fallbackketen (bijv.
en-USnaaren). Niet-geregistreerde talen krijgen het standaardbericht