Saltar al contenido
i18n-error-base
Español
Esc
↑↓navegar↵abrir⌘Jvista previa
En esta página

Referencia de la API

Especificación de `I18nErrorBase`, `setErrorMessage` y los tipos relacionados.

I18nErrorBase

Clase base para heredar de Error. message se resuelve según lang.

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

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

Parámetros de tipo

Prop Type Default Description
TMeta ErrorMeta | undefined ErrorMeta | undefined Tipo de meta. Si no se usa, especifique undefined.

Propiedades estáticas

Prop Type Default Description
prefix? string undefined Se antepone al mensaje resuelto.

Propiedades de instancia

Prop Type Description
meta TMeta Información adicional del constructor. Se puede leer y escribir.
message string Se resuelve según lang. Es enumerable.
cause unknown Causa pasada con ErrorOptions. Propiedad estándar de Error.

Constructor

Si TMeta no incluye undefined, meta es obligatorio.

new MyError(meta, message, options?)

Si TMeta es undefined, se puede omitir meta.

new MyError(message, options?)
new MyError(meta, message, options?)
Parámetro Tipo Descripción
meta TMeta Información adicional para generar mensajes.
message string | MessageFactory<TMeta> Mensaje predeterminado para idiomas no registrados. Las funciones reciben meta.
options ErrorOptions Opciones compatibles con el segundo argumento de Error (como { cause }).

Orden de resolución

  1. Obtiene lang de getGlobalConfig() (si no está configurado, "en").
  2. Ejecuta con meta la función registrada para esa clase y ese idioma.
  3. Si no está registrado, usa el mensaje predeterminado.
  4. Si existe static prefix, lo antepone.

setErrorMessage

Registra funciones creadoras de mensajes por idioma.

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

setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
Parámetro Tipo Descripción
reference I18nErrorBaseConstructor Clase que hereda de I18nErrorBase. Las que no heredan producen un error de tipo.
message string | (meta) => string Mensaje a registrar. El tipo de meta se infiere de la clase objetivo.
lang string | Iterable<string> Idioma objetivo. Un único código o un iterable (como un arreglo).

Volver a registrar la misma clase e idioma sobrescribe.

Tipos

ErrorMeta

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

Restricción predeterminada de TMeta. Objeto de solo lectura con propiedades arbitrarias.

ErrorOptions

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

Tipo derivado del segundo argumento de Error. Permite pasar cause.

MessageFactory<TMeta>

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

Función que genera un mensaje a partir de meta. Se usa tanto para el predeterminado como para los registrados.

I18nErrorBaseParams<TMeta>

Sobrecargas de argumentos 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];

La forma abreviada sin meta solo se permite cuando TMeta es undefined.

I18nErrorBaseConstructor

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

Tipo del primer argumento de setErrorMessage.

Notas

  • El valor predeterminado de lang es "en". Cámbielo con setGlobalConfig({ lang }).
  • No hay normalización de códigos ni cadena de reserva (p. ej.: en-US → en). Los idiomas no registrados usan el mensaje predeterminado.

¿Te ha resultado útil esta página?