n2words
Version:
Convert numbers to words in 70+ languages with zero dependencies. Supports BigInt, decimals, and browser/Node.js environments.
59 lines (58 loc) • 2.39 kB
TypeScript
/**
* Japanese (Japan) language converter
*
* CLDR: ja-JP | Japanese as used in Japan
*
* Japanese-specific rules:
* - Myriad (万-based) grouping: 4 digits per segment instead of 3
* - 一 omission: Omit "一" before 十, 百, 千 but NOT before 万 and higher scales
* - Kanji numerals: 零一二三四五六七八九
* - No spaces between characters
*/
export declare const cardinalMax: bigint;
export declare const ordinalMax: bigint;
export declare const currencyMax: bigint;
/**
* Converts a numeric value to Japanese words.
*
* This is the main public API. It accepts any valid numeric input
* (number, string, or bigint) and handles parsing internally.
* @param {number | string | bigint} value - The numeric value to convert
* @returns {string} The number in Japanese kanji words
* @throws {TypeError} If value is not a valid numeric type
* @throws {Error} If value is not a valid number format
* @example
* toCardinal(42) // '四十二'
* toCardinal(10000) // '一万'
* toCardinal(100000000) // '一億'
*/
declare function toCardinal(value: number | string | bigint): string;
/**
* Converts a numeric value to Japanese ordinal words.
* @param {number | string | bigint} value - The numeric value to convert (positive integer)
* @returns {string} The number as ordinal words
* @throws {TypeError} If value is not a valid numeric type
* @throws {RangeError} If value is negative, zero, or has a decimal part
* @example
* toOrdinal(1) // '第一'
* toOrdinal(10) // '第十'
* toOrdinal(100) // '第百'
*/
declare function toOrdinal(value: number | string | bigint): string;
/**
* Converts a numeric value to Japanese currency words (Yen).
*
* Note: Sen (銭, 1/100 yen) is included for completeness but is rarely used
* in modern Japan. Most transactions are in whole yen.
* @param {number | string | bigint} value - The currency amount to convert
* @returns {string} The amount in Japanese currency words
* @throws {TypeError} If value is not a valid numeric type
* @throws {Error} If value is not a valid number format
* @example
* toCurrency(42) // '四十二円'
* toCurrency(1) // '一円'
* toCurrency(0.50) // '五十銭'
* toCurrency(42.50) // '四十二円五十銭'
*/
declare function toCurrency(value: number | string | bigint): string;
export { toCardinal, toOrdinal, toCurrency };