Định nghĩa kiểu dữ liệu
Lời mở đầu
Trang này mô tả các kiểu dữ liệu trong iztro. Các kiểu dữ liệu quốc tế hóa được định nghĩa trong i18n, còn các kiểu khác nằm trong types.
Bạn có thể nhập các kiểu dữ liệu quốc tế hóa bằng đoạn mã sau:
import { HeavenlyStemName } from "iztro/lib/i18n";Để nhập các kiểu dữ liệu khác, hãy dùng:
import { Palace } from "iztro/lib/data/types";Mẹo
Nếu phát hiện lỗi hoặc điểm chưa phù hợp trong bản dịch hay định nghĩa kiểu, hãy tạo một issue để báo cho chúng tôi. Xin cảm ơn!
Các kiểu dữ liệu đa ngôn ngữ
Để hỗ trợ đầu vào và đầu ra đa ngôn ngữ, iztro định nghĩa tên gọi bằng nhiều ngôn ngữ cho các tham số và kết quả. Bạn có thể nhập giá trị bằng bất kỳ ngôn ngữ được hỗ trợ nào; ví dụ, HeavenlyStemName chấp nhận 甲, 갑 hoặc jia.
Ví dụ, khi gọi getHoroscopeStar(), bạn có thể truyền tên thiên can(天干) và địa chi(地支) bằng tiếng Trung làm đối số:
import { getHoroscopeStar } from "iztro/lib/star";
getHoroscopeStar("甲", "子", "decadal");Bạn cũng có thể truyền tên gọi bằng ngôn ngữ khác được hỗ trợ, hoặc kết hợp nhiều ngôn ngữ trong cùng một lần gọi:
import { getHoroscopeStar } from "iztro/lib/star";
getHoroscopeStar("갑", "zi", "decadal");Dù đầu vào dùng ngôn ngữ nào, kết quả vẫn được xuất thống nhất bằng ngôn ngữ bạn chọn. Hãy đặt ngôn ngữ đầu ra trước khi gọi phương thức:
import { setLanguage } from "iztro/lib/i18n";
setLanguage("ko-KR");
const horoscopeStar = getHoroscopeStar("甲", "zi", "decadal");Lúc này, kết quả đầu ra của horoscopeStar sẽ là tiếng Hàn.
Kết quả đầu ra horoscopeStar
[
[
{
"name": "록존(십년)",
"type": "lucun",
"scope": "decadal"
},
{
"name": "천마(십년)",
"type": "tianma",
"scope": "decadal"
}
],
[
{
"name": "경양(십년)",
"type": "tough",
"scope": "decadal"
},
{
"name": "홍란(십년)",
"type": "flower",
"scope": "decadal"
}
],
[],
[
{
"name": "문창(십년)",
"type": "soft",
"scope": "decadal"
}
],
[],
[
{
"name": "천월(십년)",
"type": "soft",
"scope": "decadal"
}
],
[],
[
{
"name": "문곡(십년)",
"type": "soft",
"scope": "decadal"
},
{
"name": "천희(십년)",
"type": "flower",
"scope": "decadal"
}
],
[],
[],
[],
[
{
"name": "천괴(십년)",
"type": "soft",
"scope": "decadal"
},
{
"name": "타라(십년)",
"type": "tough",
"scope": "decadal"
}
]
]HeavenlyStemName
Định nghĩa tên gọi của mười thiên can(十天干).
甲 | 乙 | 丙 | 丁 | 戊 | 己 | 庚 | 辛 | 壬 | 癸
EarthlyBranchName
Định nghĩa mười hai địa chi(十二地支). Địa chi Ngọ(午) và thiên can Mậu(戊) đều có cách phiên âm thông thường là “wu”. Để tránh trùng tên khi xử lý đầu vào đa ngôn ngữ, thư viện biểu thị địa chi Ngọ(午) bằng tên woo.
子 | 丑 | 寅 | 卯 | 辰 | 巳 | 午 | 未 | 申 | 酉 | 戌 | 亥
PalaceName
Định nghĩa Tên của các cung(宮位) trong Tử Vi Đẩu Số(紫微斗數).
命宫 | 身宫 | 兄弟 | 夫妻 | 子女 | 财帛 | 疾厄 | 迁移 | 仆役 | 官禄 | 田宅 | 福德 | 父母 | 来因
Brightness
Định nghĩa độ sáng của sao(星曜).
"" | 庙 | 旺 | 得 | 利 | 平 | 不 | 陷
Mutagen
Xác định tên của sao tứ hóa(四化星) trong Tử Vi Đẩu Số(紫微斗數)
禄 | 权 | 科 | 忌
StarName
Định nghĩa tên các sao(星曜) trong Tử Vi Đẩu Số(紫微斗數), bao gồm cả lưu diệu(流曜).
warrior và breaker.紫微 | 天机 | 太阳 | 武曲 | 天同 | 廉贞 | 天府 | 太阴 | 贪狼 | 巨门 | 天相 | 天梁 | 七杀 | 破军 | 左辅 | 右弼 | 文昌 | 文曲 | 禄存 | 天马 | 擎羊 | 陀罗 | 火星 | 铃星 | 天魁 | 天钺 | 地空 | 地劫 | 劫杀 | 天空 | 天刑 | 天姚 | 解神 | 阴煞 | 天喜 | 天官 | 天福 | 天哭 | 天虚 | 龙池 | 凤阁 | 红鸾 | 孤辰 | 寡宿 | 蜚廉 | 破碎 | 台辅 | 封诰 | 天巫 | 天月 | 三台 | 八座 | 恩光 | 天贵 | 天才 | 天寿 | 截空 | 旬中 | 旬空 | 空亡 | 截路 | 月德 | 天伤 | 天使 | 天厨 | 长生 | 沐浴 | 冠带 | 临官 | 帝旺 | 衰 | 病 | 死 | 墓 | 绝 | 胎 | 养 | 博士 | 力士 | 青龙 | 小耗 | 将军 | 奏书 | 飞廉 | 喜神 | 病符 | 大耗 | 岁破 | 伏兵 | 官府 | 岁建 | 晦气 | 丧门 | 贯索 | 官符 | 龙德 | 白虎 | 天德 | 吊客 | 将星 | 攀鞍 | 岁驿 | 息神 | 华盖 | 劫煞 | 灾煞 | 天煞 | 指背 | 咸池 | 月煞 | 亡神 | 运魁 | 运钺 | 运昌 | 运曲 | 运鸾 | 运喜 | 运禄 | 运羊 | 运陀 | 运马 | 流魁 | 流钺 | 流昌 | 流曲 | 流鸾 | 流喜 | 流禄 | 流羊 | 流陀 | 流马 | 年解 | 月魁 | 月钺 | 月昌 | 月曲 | 月鸾 | 月喜 | 月禄 | 月羊 | 月陀 | 月马 | 日魁 | 日钺 | 日昌 | 日曲 | 日鸾 | 日喜 | 日禄 | 日羊 | 日陀 | 日马 | 时魁 | 时钺 | 时昌 | 时曲 | 时鸾 | 时喜 | 时禄 | 时羊 | 时陀 | 时马
Bí danh cùng tên sao(星曜) ^2.6.1
Khi các sao(星曜) khác nhau có cùng tên tiếng Hàn hoặc tiếng Việt, bạn có thể nhập bí danh kèm chữ Hán để xác định chính xác sao cần tìm. Các bí danh này chỉ dùng cho đầu vào; đầu ra đã dịch vẫn sử dụng tên gốc.
- Tiếng Hàn:
천상(天相),천상(天傷),천월(天鉞),천월(天月),겁살(劫殺),겁살(劫煞),비렴(蜚廉),비렴(飛廉),관부(官府),관부(官符) - Tiếng Việt:
Kiếp Sát(劫殺),Kiếp Sát(劫煞),Phi Liêm(蜚廉),Phi Liêm(飛廉)
FiveElementsClassName
Xác định tên của Cục ngũ hành(五行局) trong Tử Vi Đẩu Số(紫微斗數)
水二局 | 木三局 | 金四局 | 土五局 | 火六局
GenderName
Xác định tên của giới tính
男 | 女
Các kiểu dữ liệu dùng chung
Language
export type Language = `zh-CN` | `zh-TW` | `en-US` | `ko-KR` | `ja-JP` | `vi-VN`;ngôn ngữ được hỗ trợ đã được xác định. Các ngôn ngữ hiện được hỗ trợ là:
zh-CN: Tiếng Trung giản thểzh-TW: Tiếng Trung phồn thểen-US:Englishko-KR:한국어ja-JP: Tiếng Nhậtvi-VN: Tiếng Việt
Scope
export type Scope = "origin" | "decadal" | "yearly";Định nghĩa phạm vi áp dụng của sao(星曜) để phân biệt sao bản mệnh(本命星曜) với lưu diệu(流曜):
origin: sao bản mệnh(本命星曜)decadal: sao đại hạn(大限星曜)yearly: sao lưu niên(流年星曜)
StarType
export type StarType =
| "major"
| "soft"
| "tough"
| "adjective"
| "flower"
| "helper"
| "lucun"
| "tianma";Định nghĩa loại của sao(星曜). Dù sao đào hoa(桃花星) và Giải Thần(解神) (bao gồm Niên Giải(年解)) thuộc tạp diệu(雜曜), chúng có ý nghĩa riêng trong luận giải lá số nên được phân loại riêng. Hai phụ tinh Lộc Tồn(祿存) và Thiên Mã(天馬) cũng có vai trò đặc biệt, nên mỗi sao được xếp vào một nhóm riêng:
major: chính tinh(主星)soft: cát tinh(吉星)tough: sát tinh(煞星)adjective: tạp diệu(雜曜)flower: sao đào hoa(桃花)helper:Giải Thần(解神)lucun:Lộc Tồn(祿存)tianma:Thiên Mã(天馬)
Sao(星曜)
Star
export type Star = {
name: StarName;
type: StarType;
scope: Scope;
brightness?: Brightness;
mutagen?: Mutagen;
};Định nghĩa cấu trúc dữ liệu cho đối tượng sao(星曜).
| Thuộc tính | Ý nghĩa | Kiểu |
|---|---|---|
name | Tên sao(星曜名稱) | StarName |
type | Loại sao(星曜類型) | StarType |
scope | Phạm vi | Scope |
brightness | Độ sáng của sao | Brightness |
mutagen | tứ hóa(四化) | Mutagen |
Cung(宮位)
SoulAndBody
export type SoulAndBody = {
soulIndex: number;
bodyIndex: number;
heavenlyStemOfSoul: HeavenlyStemName;
earthlyBranchOfSoul: EarthlyBranchName;
};Định nghĩa thông tin vị trí của cung Mệnh(命宮) và cung Thân(身宮).
| Thuộc tính | Ý nghĩa | Kiểu |
|---|---|---|
soulIndex | Chỉ số Mệnh(命宮) | number |
bodyIndex | Chỉ số Thân(身宮) | number |
heavenlyStemOfSoul | Thiên can của cung Mệnh(命宮天干) | HeavenlyStemName |
earthlyBranchOfSoul | Địa chi của cung Mệnh(命宮地支) | EarthlyBranchName |
Palace
export type Palace = {
name: PalaceName;
isBodyPalace: boolean;
isOriginalPalace: boolean;
heavenlyStem: HeavenlyStemName;
earthlyBranch: EarthlyBranchName;
majorStars: Star[];
minorStars: Star[];
adjectiveStars: Star[];
changsheng12: StarName;
boshi12: StarName;
jiangqian12: StarName;
suiqian12: StarName;
decadal: Decadal;
ages: number[];
};Định nghĩa cấu trúc dữ liệu cho đối tượng cung(宮位).
| Thuộc tính | Ý nghĩa | Kiểu |
|---|---|---|
name | Tên cung(宮位名稱) | PalaceName |
isBodyPalace | Có phải cung Thân(身宮) hay không | boolean |
isOriginalPalace | Có phải cung Lai Nhân(來因宮) hay không | boolean |
heavenlyStem | Thiên can của cung(宮位天干) | HeavenlyStemName |
earthlyBranch | Địa chi của cung(宮位地支) | EarthlyBranchName |
majorStars | chính tinh(主星) | Star[] |
minorStars | phụ tinh(輔星) | Star[] |
adjectiveStars | tạp diệu(雜曜) | Star[] |
changsheng12 | Mười hai sao vòng Tràng Sinh(長生十二神) | StarName |
boshi12 | Mười hai sao vòng Bác Sĩ(博士十二神) | StarName |
jiangqian12 | Mười hai sao Tướng Tiền của lưu niên(流年將前十二神) | StarName |
suiqian12 | Mười hai sao Tuế Tiền của lưu niên(流年歲前十二神) | StarName |
decadal | Đại Hạn(大限) | Decadal |
ages | Tiểu Hạn(小限) | number[] |
SurroundedPalaces
export type SurroundedPalaces = {
target: IFunctionalPalace;
opposite: IFunctionalPalace;
wealth: IFunctionalPalace;
career: IFunctionalPalace;
};Định nghĩa cấu trúc dữ liệu cho đối tượng tam phương tứ chính(三方四正).
| Thuộc tính | Ý nghĩa | Kiểu |
|---|---|---|
target | cung đang xét | IFunctionalPalace |
opposite | đối cung | IFunctionalPalace |
wealth | Vị trí Tài Bạch(財帛位) | IFunctionalPalace |
career | Vị trí Quan Lộc(官祿位) | IFunctionalPalace |
Vận hạn(運限)
HoroscopeItem
export type HoroscopeItem = {
index: number;
name: string;
heavenlyStem: HeavenlyStemName;
earthlyBranch: EarthlyBranchName;
palaceNames: PalaceName[];
mutagen: StarName[];
stars?: Star[][];
};Định nghĩa cấu trúc dữ liệu cho đối tượng vận hạn(運限).
| Thuộc tính | Ý nghĩa | Kiểu |
|---|---|---|
index | Chỉ số của cung tương ứng | number |
name ^1.2.3 | Tên vận hạn(運限名稱) | string |
heavenlyStem | Thiên can của vận hạn(運限天干) | HeavenlyStemName |
earthlyBranch | Địa chi của vận hạn(運限地支) | EarthlyBranchName |
palaceNames | Mười hai cung của vận hạn(運限十二宮) | PalaceName[] |
mutagen | sao tứ hóa(四化星) | StarName[] |
stars | lưu diệu(流曜) | Star[][] |
Decadal
export type Decadal = {
range: [number, number];
heavenlyStem: HeavenlyStemName;
earthlyBranch: EarthlyBranchName;
};Định nghĩa dữ liệu Đại Hạn(大限) của lá số. Kiểu này chủ yếu được dùng trong Palace.
| Thuộc tính | Ý nghĩa | Kiểu |
|---|---|---|
range | Tuổi bắt đầu và kết thúc đại hạn [tuổi bắt đầu, tuổi kết thúc] | [number, number] |
heavenlyStem | Thiên can của đại hạn(大限天干) | HeavenlyStemName |
earthlyBranch | Địa chi của đại hạn(大限地支) | EarthlyBranchName |
DecadalHoroscope
export type DecadalHoroscope = HoroscopeItem & {
palaceName: PalaceName;
ageRange: [number, number];
yearRange: [number, number];
};Định nghĩa một mục trong danh sách đại hạn(大限) do decadalList() trả về.
| Thuộc tính | Ý nghĩa | Kiểu |
|---|---|---|
palaceName | Cung trên lá số bản mệnh nơi đại hạn tọa lạc(大限所在本命宮位) | PalaceName |
ageRange | Tuổi mụ(虛歲) bắt đầu và kết thúc đại hạn | [number, number] |
yearRange | Năm bắt đầu và kết thúc đại hạn | [number, number] |
Loại này cũng chứa tất cả các thuộc tính của HoroscopeItem.
YearlyHoroscope
export type YearlyHoroscope = HoroscopeItem & {
age: number;
year: number;
};Định nghĩa một mục trong danh sách lưu niên(流年) do yearlyList() trả về.
| Thuộc tính | Ý nghĩa | Kiểu |
|---|---|---|
age | Tuổi mụ tương ứng với lưu niên(流年虛歲) | number |
year | Năm của lưu niên(流年年份) | number |
Loại này cũng chứa tất cả các thuộc tính của HoroscopeItem.
MonthlyHoroscope
export type MonthlyHoroscope = YearlyHoroscope & {
month: number;
isLeapMonth: boolean;
part: 'normal' | 'first' | 'second';
dayRange: [number, number];
};Định nghĩa một mục trong danh sách lưu nguyệt(流月) do monthlyList() trả về.
| Thuộc tính | Ý nghĩa | Kiểu |
|---|---|---|
month | Tháng âm lịch, tháng đầu tiên là 1 | number |
isLeapMonth | Có phải là tháng nhuận không? | boolean |
part | Tháng thường, nửa đầu tháng nhuận hoặc nửa sau tháng nhuận | 'normal' | 'first' | 'second' |
dayRange | Phạm vi ngày âm lịch tương ứng cho mục này | [number, number] |
Loại này chứa tất cả các thuộc tính của cả YearlyHoroscope và HoroscopeItem.
Horoscope
export type Horoscope = {
lunarDate: string;
solarDate: string;
decadal: HoroscopeItem;
age: {
index: number;
nominalAge: number;
};
yearly: HoroscopeItem & {
yearlyDecStar: {
jiangqian12: StarName[];
suiqian12: StarName[]
}
};
monthly: HoroscopeItem;
daily: HoroscopeItem;
hourly: HoroscopeItem;
};Định nghĩa đối tượng vận hạn(運限), bao gồm dữ liệu Đại Hạn(大限), Lưu Niên(流年), Lưu Nguyệt(流月), Lưu Nhật(流日) và Lưu Thì(流時).
| Thuộc tính | Ý nghĩa | Kiểu |
|---|---|---|
lunarDate | Ngày âm lịch | string |
solarDate | Ngày dương lịch | string |
decadal | Đại Hạn(大限) | HoroscopeItem |
age | Tiểu Hạn(小限) | { index: number, nominalAge: number } |
yearly | Lưu Niên(流年) | HoroscopeItem & { yearlyDecStar: { jiangqian12: StarName[]; suiqian12: StarName[] } } |
monthly | Lưu Nguyệt(流月) | HoroscopeItem |
daily | Lưu Nhật(流日) | HoroscopeItem |
hourly | Lưu Thì(流時) | HoroscopeItem |
Lá số(星盤)
Astrolabe
export type Astrolabe = {
gender: GenderName;
solarDate: string;
lunarDate: string;
chineseDate: string;
rawDates: {
lunarDate: LunarDate;
chineseDate: HeavenlyStemAndEarthlyBranchDate;
};
time: string;
timeRange: string;
sign: string;
zodiac: string;
earthlyBranchOfSoulPalace: EarthlyBranchName;
earthlyBranchOfBodyPalace: EarthlyBranchName;
soul: StarName;
body: StarName;
fiveElementsClass: FiveElementsClassName;
palaces: IFunctionalPalace[];
};Định nghĩa cấu trúc dữ liệu cho đối tượng lá số(星盤).
| Thuộc tính | Ý nghĩa | Kiểu |
|---|---|---|
gender | giới tính ^2.0.3 | GenderName |
solarDate | Ngày dương lịch | string |
lunarDate | Ngày âm lịch | string |
chineseDate | Ngày được biểu thị bằng can chi(干支) | string |
rawDates | Dữ liệu ngày gốc để các phương thức nội bộ sử dụng về sau | { lunarDate: LunarDate, chineseDate: HeavenlyStemAndEarthlyBranchDate } |
time | Giờ theo hệ mười hai thời thần(時辰) | string |
timeRange | Khoảng thời gian tương ứng với giờ truyền thống | string |
sign | Cung hoàng đạo phương Tây(星座) | string |
zodiac | Con giáp(生肖) | string |
earthlyBranchOfSoulPalace | Địa chi của cung Mệnh(命宮地支) | EarthlyBranchName |
earthlyBranchOfBodyPalace | Địa chi của cung Thân(身宮地支) | EarthlyBranchName |
soul | Sao Mệnh chủ(命主) | StarName |
body | Sao Thân chủ(身主) | StarName |
fiveElementsClass | Cục ngũ hành(五行局) | FiveElementsClassName |
palaces | Dữ liệu của mười hai cung(十二宮) | IFunctionalPalace[] |
Cấu hình và trình cắm ^2.3.0
ConfigMutagens
Xác định tham số tứ hóa(四化) trong cấu hình chung.
type ConfigMutagens = Partial<Record<HeavenlyStemName, StarName[]>>;ConfigBrightness
Xác định tham số độ sáng trong cấu hình chung.
type ConfigBrightness = Partial<Record<StarName, Brightness[]>>;Config
Định nghĩa đối tượng cấu hình tính toán lá số. Dùng astro.config() để đặt giá trị mặc định cho các lá số được tạo sau đó, hoặc withOptions({ config }) để chỉ ghi đè cấu hình của lá số đang tạo. Các lá số đã tạo vẫn giữ cấu hình tại thời điểm tạo (^2.6.2).
type Config = {
// 星曜四化配置
mutagens?: ConfigMutagens;
// 星曜亮度配置
brightness?: ConfigBrightness;
// 年分割点配置
yearDivide?: 'normal' | 'exact';
// 运限分割点配置(^v2.4.3)
horoscopeDivide?: 'normal' | 'exact';
// 小限分割点配置,normal为以自然年分界,birthday为生日分界(^v2.4.5)
// 默认为 normal
ageDivide?: 'normal' | 'birthday';
// 晚子时配置,current 时晚子时算当日,forward 时晚子时算次日(^v2.5.2)
// 默认为 forward
dayDivide?: 'current' | 'forward';
// 安星方法,default 为通行版本,zhongzhou 为中州派版本(^v2.5.0)
// 默认为 default
algorithm?: 'default' | 'zhongzhou';
};Với yearDivide và horoscopeDivide, giá trị normal lấy mồng một tháng Giêng âm lịch làm mốc chuyển năm, còn exact lấy tiết Lập Xuân(立春) làm mốc.
dayDivide chỉ quyết định giờ Tý muộn(晚子時)(timeIndex bằng 12) được tính vào ngày nào: forward tính vào ngày hôm sau, còn current tính vào ngày hiện tại.
AstroType ^2.5.0
Định nghĩa kiểu lá số của phái Trung Châu(中州派).
type AstroType = 'heaven' | 'earth' | 'human';| giá trị | Mô tả |
|---|---|
heaven | Thiên bàn(天盤), giá trị mặc định |
earth | Địa bàn(地盤): xác định cục ngũ hành từ can chi của cung Thân, rồi lấy cung Thân làm cung Mệnh. |
human | Nhân bàn(人盤): xác định cục ngũ hành từ can chi của cung Phúc Đức, rồi lấy cung Phúc Đức làm cung Mệnh. |
Plugin
Định nghĩa kiểu trình cắm. Thực chất, một trình cắm là một hàm.
type Plugin = () => void;Mẹo
Hàm của trình cắm ngầm nhận tham số this có kiểu T extends FunctionalAstrolabe. Xem Trình cắm để biết cách tạo.