Lewati ke konten
i18n-error-base
Bahasa Indonesia
Esc
↑↓navigasi↵buka⌘Jpratinjau
Di halaman ini

Referensi API

Spesifikasi I18nErrorBase, setErrorMessage, dan tipe terkait.

I18nErrorBase

Kelas dasar untuk mewarisi Error. message diselesaikan menurut lang.

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

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

Parameter tipe

Prop Type Default Description
TMeta ErrorMeta | undefined ErrorMeta | undefined Tipe meta. Tentukan undefined jika tak dipakai.

Properti statis

Prop Type Default Description
prefix? string undefined Digabung di awal pesan yang diselesaikan.

Properti instans

Prop Type Description
meta TMeta Info tambahan dari konstruktor. Dapat dibaca dan ditulis.
message string Diselesaikan menurut lang saat ini. Dapat dienumerasi.
cause unknown Penyebab via ErrorOptions. Properti standar Error.

Konstruktor

Jika TMeta tidak mencakup undefined, meta wajib.

new MyError(meta, message, options?)

Jika TMeta adalah undefined, meta dapat dihilangkan.

new MyError(message, options?)
new MyError(meta, message, options?)
Parameter Tipe Deskripsi
meta TMeta Info tambahan untuk pembuatan pesan.
message string | MessageFactory<TMeta> Pesan default untuk bahasa tak terdaftar. Fungsi menerima meta.
options ErrorOptions Opsi kompatibel dengan argumen kedua Error (seperti { cause }).

Urutan resolusi

  1. Mendapatkan lang dari getGlobalConfig() ("en" jika belum diatur)
  2. Menjalankan fungsi terdaftar kelas dan bahasa itu beserta meta
  3. Jika tak terdaftar, pakai pesan default
  4. Jika static prefix ada, gabung di awal

setErrorMessage

Mendaftarkan fungsi pembuat pesan tiap bahasa.

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

setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
Parameter Tipe Deskripsi
reference I18nErrorBaseConstructor Kelas pewaris I18nErrorBase. Jika tidak, error tipe.
message string | (meta) => string Pesan terdaftar. Tipe meta disimpulkan dari kelas target.
lang string | Iterable<string> Bahasa target. Kode tunggal atau objek iterable (seperti array).

Pendaftaran ulang kelas dan bahasa yang sama menimpa.

Tipe

ErrorMeta

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

Batasan default TMeta. Objek hanya-baca dengan properti sembarang.

ErrorOptions

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

Tipe turunan dari argumen kedua Error. Dapat memberi cause.

MessageFactory<TMeta>

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

Fungsi pembuat pesan dari meta. Untuk default maupun terdaftar.

I18nErrorBaseParams<TMeta>

Overload argumen konstruktor.

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

Tanpa meta hanya boleh jika TMeta adalah undefined.

I18nErrorBaseConstructor

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

Tipe argumen pertama setErrorMessage.

Catatan

  • Default lang adalah "en". Beralih eksplisit dengan setGlobalConfig({ lang })
  • Tanpa normalisasi kode bahasa maupun rantai fallback (mis. en-US → en). Bahasa tak terdaftar menjadi pesan default

Apakah halaman ini membantu?