Referència de l'API
Especificació de I18nErrorBase, setErrorMessage i els tipus relacionats.
I18nErrorBase
Classe base per heretar Error. message es resol segons lang.
import { I18nErrorBase } from "i18n-error-base";
class MyError extends I18nErrorBase<{ code: string }> {}
Paràmetres de tipus
| Prop | Type | Default | Description |
|---|---|---|---|
TMeta |
ErrorMeta | undefined |
ErrorMeta | undefined |
El tipus de meta. Especifiqueu undefined quan no la utilitzeu. |
Propietats estàtiques
| Prop | Type | Default | Description |
|---|---|---|---|
prefix? |
string |
undefined |
Es concatena al principi del missatge resolt. |
Propietats d’instància
| Prop | Type | Description |
|---|---|---|
meta |
TMeta |
Informació auxiliar del constructor. Es pot llegir i escriure. |
message |
string |
Es resol segons lang. És enumerable. |
cause |
unknown |
La causa de ErrorOptions. És una propietat estàndard de Error. |
Constructor
Quan TMeta no inclou undefined, meta és obligatori.
new MyError(meta, message, options?)
Quan TMeta és undefined, meta es pot ometre.
new MyError(message, options?)
new MyError(meta, message, options?)
| Paràmetre | Tipus | Descripció |
|---|---|---|
meta |
TMeta |
Informació auxiliar per generar el missatge. |
message |
string | MessageFactory<TMeta> |
Missatge per defecte per als idiomes sense registre. Les funcions reben meta. |
options |
ErrorOptions |
Opcions compatibles amb el segon argument de Error (com { cause }). |
Ordre de resolució
- Obté
langdegetGlobalConfig()("en"quan no està configurat) - Executa amb
metala funció registrada per a aquella classe i aquell idioma - Si no està registrat, utilitza el missatge per defecte
- Si
static prefixestà configurat, el concatena al principi
setErrorMessage
Registra funcions de creació de missatges per idioma.
import { setErrorMessage } from "i18n-error-base";
setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
| Paràmetre | Tipus | Descripció |
|---|---|---|
reference |
I18nErrorBaseConstructor |
Una classe que hereta I18nErrorBase. Les classes que no l’hereten provoquen un error de tipus. |
message |
string | (meta) => string |
El missatge a registrar. meta s’infereix des de la classe de destinació. |
lang |
string | Iterable<string> |
L’idioma de destinació. Un sol codi o un objecte iterable (com una matriu). |
El nou registre de la mateixa classe i idioma sobreescriu.
Tipus
ErrorMeta
type ErrorMeta = {
readonly [prop: string]: unknown;
};
La restricció per defecte de TMeta. Un objecte de només lectura amb propietats arbitràries.
ErrorOptions
type ErrorOptions =
ConstructorParameters<typeof Error> extends [
message?: unknown,
options?: (infer TOptions) | undefined,
]
? TOptions
: { readonly cause?: unknown };
Un tipus derivat del segon argument de Error. Podeu passar cause.
MessageFactory<TMeta>
interface MessageFactory<TMeta extends ErrorMeta | undefined = ErrorMeta | undefined> {
(meta: TMeta): string;
}
Una funció que genera un missatge des de meta. S’utilitza tant per al missatge per defecte com per als registrats.
I18nErrorBaseParams<TMeta>
Sobrecàrregues dels arguments del constructor.
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];
Només ometeu meta quan TMeta és undefined.
I18nErrorBaseConstructor
interface I18nErrorBaseConstructor {
new (...args: any): I18nErrorBase;
}
El tipus del primer argument de setErrorMessage.
Notes
- El
langper defecte és"en". Canvieu-lo explícitament ambsetGlobalConfig({ lang }) - No hi ha normalització de codis d’idioma ni cadena de reserva (p. ex.
en-USaen). Els idiomes sense registre utilitzen el missatge per defecte