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
- Mendapatkan
langdarigetGlobalConfig()("en"jika belum diatur) - Menjalankan fungsi terdaftar kelas dan bahasa itu beserta
meta - Jika tak terdaftar, pakai pesan default
- Jika
static prefixada, 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
langadalah"en". Beralih eksplisit dengansetGlobalConfig({ lang }) - Tanpa normalisasi kode bahasa maupun rantai fallback (mis.
en-US→en). Bahasa tak terdaftar menjadi pesan default