Skip to content
Trong trang này

Đị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:

ts
import { HeavenlyStemName } from "iztro/lib/i18n";

Để nhập các kiểu dữ liệu khác, hãy dùng:

ts
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ố:

ts
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:

ts
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:

ts
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
json
[
  [
    {
      "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(流曜).

^2.6.1 Tên tiếng Anh của Vũ Khúc(武曲) và Tuế Phá(歲破) lần lượt là 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 ​

ts
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:English
  • ko-KR:한국어
  • ja-JP: Tiếng Nhật
  • vi-VN: Tiếng Việt

Scope ​

ts
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 ​

ts
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 ​

ts
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ĩaKiểu
nameTên sao(星曜名稱)StarName
typeLoại sao(星曜類型)StarType
scopePhạm viScope
brightnessĐộ sáng của saoBrightness
mutagentứ hóa(四化)Mutagen

Cung(宮位) ​

SoulAndBody ​

ts
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ĩaKiểu
soulIndexChỉ số Mệnh(命宮)number
bodyIndexChỉ số Thân(身宮)number
heavenlyStemOfSoulThiên can của cung Mệnh(命宮天干)HeavenlyStemName
earthlyBranchOfSoulĐịa chi của cung Mệnh(命宮地支)EarthlyBranchName

Palace ​

ts
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ĩaKiểu
nameTên cung(宮位名稱)PalaceName
isBodyPalaceCó phải cung Thân(身宮) hay khôngboolean
isOriginalPalaceCó phải cung Lai Nhân(來因宮) hay khôngboolean
heavenlyStemThiên can của cung(宮位天干)HeavenlyStemName
earthlyBranchĐịa chi của cung(宮位地支)EarthlyBranchName
majorStarschính tinh(主星)Star[]
minorStarsphụ tinh(輔星)Star[]
adjectiveStarstạp diệu(雜曜)Star[]
changsheng12Mười hai sao vòng Tràng Sinh(長生十二神)StarName
boshi12Mười hai sao vòng Bác Sĩ(博士十二神)StarName
jiangqian12Mười hai sao Tướng Tiền của lưu niên(流年將前十二神)StarName
suiqian12Mười hai sao Tuế Tiền của lưu niên(流年歲前十二神)StarName
decadalĐại Hạn(大限)Decadal
agesTiểu Hạn(小限)number[]

SurroundedPalaces ​

ts
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ĩaKiểu
targetcung đang xétIFunctionalPalace
oppositeđối cungIFunctionalPalace
wealthVị trí Tài Bạch(財帛位)IFunctionalPalace
careerVị trí Quan Lộc(官祿位)IFunctionalPalace

Vận hạn(運限) ​

HoroscopeItem ​

ts
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ĩaKiểu
indexChỉ số của cung tương ứngnumber
name ^1.2.3Tên vận hạn(運限名稱)string
heavenlyStemThiên can của vận hạn(運限天干)HeavenlyStemName
earthlyBranchĐịa chi của vận hạn(運限地支)EarthlyBranchName
palaceNamesMười hai cung của vận hạn(運限十二宮)PalaceName[]
mutagensao tứ hóa(四化星)StarName[]
starslưu diệu(流曜)Star[][]

Decadal ​

ts
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ĩaKiểu
rangeTuổ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]
heavenlyStemThiên can của đại hạn(大限天干)HeavenlyStemName
earthlyBranchĐịa chi của đại hạn(大限地支)EarthlyBranchName

DecadalHoroscope ​

ts
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ĩaKiểu
palaceNameCung trên lá số bản mệnh nơi đại hạn tọa lạc(大限所在本命宮位)PalaceName
ageRangeTuổi mụ(虛歲) bắt đầu và kết thúc đại hạn[number, number]
yearRangeNă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 ​

ts
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ĩaKiểu
ageTuổi mụ tương ứng với lưu niên(流年虛歲)number
yearNă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 ​

ts
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ĩaKiểu
monthTháng âm lịch, tháng đầu tiên là 1number
isLeapMonthCó phải là tháng nhuận không?boolean
partTháng thường, nửa đầu tháng nhuận hoặc nửa sau tháng nhuận'normal' | 'first' | 'second'
dayRangePhạ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 ​

ts
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ĩaKiểu
lunarDateNgày âm lịchstring
solarDateNgày dương lịchstring
decadalĐại Hạn(大限)HoroscopeItem
ageTiểu Hạn(小限){ index: number, nominalAge: number }
yearlyLưu Niên(流年)HoroscopeItem & { yearlyDecStar: { jiangqian12: StarName[]; suiqian12: StarName[] } }
monthlyLưu Nguyệt(流月)HoroscopeItem
dailyLưu Nhật(流日)HoroscopeItem
hourlyLưu Thì(流時)HoroscopeItem

Lá số(星盤) ​

Astrolabe ​

ts
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ĩaKiểu
gendergiới tính ^2.0.3GenderName
solarDateNgày dương lịchstring
lunarDateNgày âm lịchstring
chineseDateNgày được biểu thị bằng can chi(干支)string
rawDatesDữ liệu ngày gốc để các phương thức nội bộ sử dụng về sau{ lunarDate: LunarDate, chineseDate: HeavenlyStemAndEarthlyBranchDate }
timeGiờ theo hệ mười hai thời thần(時辰)string
timeRangeKhoảng thời gian tương ứng với giờ truyền thốngstring
signCung hoàng đạo phương Tây(星座)string
zodiacCon giáp(生肖)string
earthlyBranchOfSoulPalaceĐịa chi của cung Mệnh(命宮地支)EarthlyBranchName
earthlyBranchOfBodyPalaceĐịa chi của cung Thân(身宮地支)EarthlyBranchName
soulSao Mệnh chủ(命主)StarName
bodySao Thân chủ(身主)StarName
fiveElementsClassCục ngũ hành(五行局)FiveElementsClassName
palacesDữ 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.

ts
type ConfigMutagens = Partial<Record<HeavenlyStemName, StarName[]>>;

ConfigBrightness ​

Xác định tham số độ sáng trong cấu hình chung.

ts
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).

ts
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(中州派).

ts
type AstroType = 'heaven' | 'earth' | 'human';
giá trịMô tả
heavenThiê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.
humanNhâ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.

ts
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.

© 2025 iztro.com All rights reserved.
Trang liên quan: 紫微派