Chuyển đến nội dung
i18n-error-base
Tiếng Việt
Esc
↑↓di chuyển↵mở⌘Jxem trước
Trên trang này

Tham chiếu API

Đặc tả của I18nErrorBase, setErrorMessage và các type liên quan.

I18nErrorBase

Lớp cơ sở để kế thừa Error. message giải quyết theo lang.

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

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

Tham số type

Prop Type Default Description
TMeta ErrorMeta | undefined ErrorMeta | undefined Kiểu của meta. Nếu không dùng, chỉ định undefined.

Thuộc tính static

Prop Type Default Description
prefix? string undefined Nối vào đầu thông báo đã giải quyết.

Thuộc tính instance

Prop Type Description
meta TMeta Thông tin bổ trợ từ constructor. Đọc/ghi được.
message string Giải quyết theo lang hiện tại. Liệt kê được.
cause unknown Nguyên nhân qua ErrorOptions. Thuộc tính chuẩn của Error.

Constructor

Nếu TMeta không bao gồm undefined, meta là bắt buộc.

new MyError(meta, message, options?)

Nếu TMeta là undefined, bạn có thể bỏ qua meta.

new MyError(message, options?)
new MyError(meta, message, options?)
Tham số Kiểu Mô tả
meta TMeta Thông tin bổ trợ để tạo thông báo.
message string | MessageFactory<TMeta> Thông báo mặc định cho ngôn ngữ chưa đăng ký. Hàm nhận meta.
options ErrorOptions Option tương thích với tham số thứ 2 của Error ({ cause } v.v.).

Thứ tự giải quyết

  1. Lấy lang của getGlobalConfig() (khi chưa thiết lập là "en")
  2. Chạy hàm đã đăng ký cho class và ngôn ngữ đó kèm meta
  3. Nếu chưa đăng ký, dùng thông báo mặc định
  4. Nếu có static prefix, nối vào đầu

setErrorMessage

Đăng ký hàm tạo thông báo theo từng ngôn ngữ.

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

setErrorMessage(MyError, (meta) => `...: ${meta.code}`, "ja");
Tham số Kiểu Mô tả
reference I18nErrorBaseConstructor Class kế thừa I18nErrorBase. Ngược lại lỗi type.
message string | (meta) => string Thông báo đăng ký. Kiểu meta suy ra từ class đích.
lang string | Iterable<string> Ngôn ngữ đích. Một mã đơn hoặc iterable (như mảng).

Đăng ký lại cùng class và ngôn ngữ sẽ ghi đè.

Type

ErrorMeta

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

Ràng buộc mặc định của TMeta. Đối tượng chỉ đọc có thuộc tính tùy ý.

ErrorOptions

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

Type suy ra từ tham số thứ 2 của Error. Có thể truyền cause.

MessageFactory<TMeta>

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

Hàm tạo thông báo từ meta. Dùng cho cả mặc định và đã đăng ký.

I18nErrorBaseParams<TMeta>

Overload tham số 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];

Chỉ khi TMeta là undefined mới được bỏ meta.

I18nErrorBaseConstructor

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

Type của tham số thứ nhất của setErrorMessage.

Ghi chú bổ sung

  • Mặc định lang là "en". Hãy chuyển rõ ràng bằng setGlobalConfig({ lang })
  • Không chuẩn hóa mã ngôn ngữ hay chuỗi fallback (ví dụ en-US → en). Ngôn ngữ chưa đăng ký thành thông báo mặc định

Trang này có hữu ích không?