Skip to content
頁內導航

類型定義 ​

前言 ​

本頁介紹了 iztro 中的類型定義,除了 國際化類型 被定義在了 i18n 文件夾內,其他類型都定義在 types 文件夾內。

你可以使用如下代碼引入 國際化類型:

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

而當你需要引入其他類型的時候,則需要:

ts
import { Palace } from "iztro/lib/data/types";

提示

如果你發現 翻譯 和 類型定義 中有不對或者不恰當的地方,可以在 這裏 創建 Issue 指出,非常感謝。

國際化類型 ​

iztro 為了支持國際化輸入輸出,對需要進行參數輸入輸出的數據進行了多語言定義,在輸入的時候,你可以輸入 任意語言 的值,比如在需要傳 HeavenlyStemName 的地方,你可以傳入 甲,也可以傳入 갑 或者 jia。

比如在調用getHoroscopeStar()方法的時候,你可以以中文的干支作為參數:

ts
import { getHoroscopeStar } from "iztro/lib/star";

getHoroscopeStar("甲", "子", "decadal");

也可以用其他語言的翻譯作為參數甚至中文和外文混合使用,也是可以的:

ts
import { getHoroscopeStar } from "iztro/lib/star";

getHoroscopeStar("갑", "zi", "decadal");

當然輸出的時候會統一按照你指定的語言進行輸出。你可以在調用上述方法之前設置你的輸出語言:

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

setLanguage("ko-KR");

const horoscopeStar = getHoroscopeStar("甲", "zi", "decadal");

此時 horoscopeStar 的輸出結果會是 韓文 的。

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 ​

定義了十天干

甲 | 乙 | 丙 | 丁 | 戊 | 己 | 庚 | 辛 | 壬 | 癸


EarthlyBranchName ​

定義了 十二地支,地支中的 午 英文和天干中的 戊 相同,為了解決國際化時的沖突,故將地支中的 午 翻譯成了 woo。

子 | 丑 | 寅 | 卯 | 辰 | 巳 | 午 | 未 | 申 | 酉 | 戌 | 亥


PalaceName ​

定義了紫微斗數宮位的 名稱。

命宫 | 身宫 | 兄弟 | 夫妻 | 子女 | 财帛 | 疾厄 | 迁移 | 僕役 | 官禄 | 田宅 | 福德 | 父母 | 来因


Brightness ​

定義了星曜的 亮度

"" | 庙 | 旺 | 得 | 利 | 平 | 不 | 陷


Mutagen ​

定義了紫微斗數中 四化星 的名稱

禄 | 权 | 科 | 忌


StarName ​

定義了紫微斗數中 星曜 的名稱,包括 流曜

^2.6.1 武曲和歲破的英文名分別為 warrior 和 breaker。

紫微 | 天机 | 太阳 | 武曲 | 天同 | 廉贞 | 天府 | 太阴 | 贪狼 | 巨门 | 天相 | 天梁 | 七杀 | 破军 | 左辅 | 右弼 | 文昌 | 文曲 | 禄存 | 天马 | 擎羊 | 陀罗 | 火星 | 铃星 | 天魁 | 天钺 | 地空 | 地劫 | 劫杀 | 天空 | 天刑 | 天姚 | 解神 | 阴煞 | 天喜 | 天官 | 天福 | 天哭 | 天虚 | 龙池 | 凤阁 | 红鸾 | 孤辰 | 寡宿 | 蜚廉 | 破碎 | 台辅 | 封诰 | 天巫 | 天月 | 三台 | 八座 | 恩光 | 天贵 | 天才 | 天寿 | 截空 | 旬中 | 旬空 | 空亡 | 截路 | 月德 | 天伤 | 天使 | 天厨 | 长生 | 沐浴 | 冠带 | 临官 | 帝旺 | 衰 | 病 | 死 | 墓 | 绝 | 胎 | 养 | 博士 | 力士 | 青龙 | 小耗 | 将军 | 奏书 | 飞廉 | 喜神 | 病符 | 大耗 | 岁破 | 伏兵 | 官府 | 岁建 | 晦气 | 丧门 | 贯索 | 官符 | 龙德 | 白虎 | 天德 | 吊客 | 将星 | 攀鞍 | 岁驿 | 息神 | 华盖 | 劫煞 | 灾煞 | 天煞 | 指背 | 咸池 | 月煞 | 亡神 | 运魁 | 运钺 | 运昌 | 运曲 | 运鸾 | 运喜 | 运禄 | 运羊 | 运陀 | 运马 | 流魁 | 流钺 | 流昌 | 流曲 | 流鸾 | 流喜 | 流禄 | 流羊 | 流陀 | 流马 | 年解 | 月魁 | 月钺 | 月昌 | 月曲 | 月鸾 | 月喜 | 月禄 | 月羊 | 月陀 | 月马 | 日魁 | 日钺 | 日昌 | 日曲 | 日鸾 | 日喜 | 日禄 | 日羊 | 日陀 | 日马 | 时魁 | 时钺 | 时昌 | 时曲 | 时鸾 | 时喜 | 时禄 | 时羊 | 时陀 | 时马

同名星曜別名 ^2.6.1

韓文或越南語星曜名稱出現重名時,可以傳入帶漢字的限定別名進行準確反查。限定別名只用於輸入,翻譯輸出仍使用原名稱。

  • 韓文:천상(天相)、천상(天傷)、천월(天鉞)、천월(天月)、겁살(劫殺)、겁살(劫煞)、비렴(蜚廉)、비렴(飛廉)、관부(官府)、관부(官符)
  • 越南語:Kiếp Sát(劫殺)、Kiếp Sát(劫煞)、Phi Liêm(蜚廉)、Phi Liêm(飛廉)

FiveElementsClassName ​

定義了紫微斗數中 五行局 的名稱

水二局 | 木三局 | 金四局 | 土五局 | 火六局


GenderName ​

定義 性別 的名稱

男 | 女

通用 ​

Language ​

ts
export type Language = `zh-CN` | `zh-TW` | `en-US` | `ko-KR` | `ja-JP` | `vi-VN`;

定義了支持的 語言,目前支持的語言有:

  • zh-CN:簡體中文
  • zh-TW:繁體中文
  • en-US:English
  • ko-KR:한국어
  • ja-JP:日本語
  • vi-VN:Tiếng Việt

Scope ​

ts
export type Scope = "origin" | "decadal" | "yearly";

定義了星曜的 作用範圍,用於區分本命星曜和流曜:

  • origin:本命星曜
  • decadal:大限星曜
  • yearly:流年星曜

StarType ​

ts
export type StarType =
  | "major"
  | "soft"
  | "tough"
  | "adjective"
  | "flower"
  | "helper"
  | "lucun"
  | "tianma";

定義了星曜 類型,其中 桃花星 和 解神星(包含 年解)雖然是雜曜,但是在解盤中有著特殊的意義,所以單獨歸類,祿存 和 天馬 二輔星也是比較特殊,所以單獨歸類:

  • major:主星
  • soft:吉星
  • tough:煞星
  • adjective:雜曜
  • flower:桃花
  • helper:解神
  • lucun:祿存
  • tianma:天馬

星曜 ​

Star ​

ts
export type Star = {
  name: StarName;
  type: StarType;
  scope: Scope;
  brightness?: Brightness;
  mutagen?: Mutagen;
};

定義了 星曜 對象

屬性解釋類型
name星曜名字StarName
type星曜類型StarType
scope作用範圍Scope
brightness星曜亮度Brightness
mutagen四化Mutagen

宮位 ​

SoulAndBody ​

ts
export type SoulAndBody = {
  soulIndex: number;
  bodyIndex: number;
  heavenlyStemOfSoul: HeavenlyStemName;
  earthlyBranchOfSoul: EarthlyBranchName;
};

定義了 命宮 和 身宮 位置信息

屬性解釋類型
soulIndex命宮索引number
bodyIndex身宮索引number
heavenlyStemOfSoul命宮天干HeavenlyStemName
earthlyBranchOfSoul命宮地支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[];
};

定義了 宮位 對象

屬性解釋類型
name宮位名稱PalaceName
isBodyPalace是否身宮boolean
isOriginalPalace是否來因宮boolean
heavenlyStem宮位天干HeavenlyStemName
earthlyBranch宮位地支EarthlyBranchName
majorStars主星Star[]
minorStars輔星Star[]
adjectiveStars雜曜Star[]
changsheng12長生 12 神StarName
boshi12博士 12 神StarName
jiangqian12流年將前 12 神StarName
suiqian12流年歲前 12 神StarName
decadal大限Decadal
ages小限number[]

SurroundedPalaces ​

ts
export type SurroundedPalaces = {
  target: IFunctionalPalace;
  opposite: IFunctionalPalace;
  wealth: IFunctionalPalace;
  career: IFunctionalPalace;
};

定義了 三方四正 對象

屬性解釋類型
target本宮IFunctionalPalace
opposite對宮IFunctionalPalace
wealth財帛位IFunctionalPalace
career官祿位IFunctionalPalace

運限 ​

HoroscopeItem ​

ts
export type HoroscopeItem = {
  index: number;
  name: string;
  heavenlyStem: HeavenlyStemName;
  earthlyBranch: EarthlyBranchName;
  palaceNames: PalaceName[];
  mutagen: StarName[];
  stars?: Star[][];
};

定義了 運限 對象

屬性解釋類型
index所在宮位的索引number
name ^1.2.3運限的名稱string
heavenlyStem運限天干HeavenlyStemName
earthlyBranch運限地支EarthlyBranchName
palaceNames運限的十二宮PalaceName[]
mutagen四化星StarName[]
stars流曜Star[][]

Decadal ​

ts
export type Decadal = {
  range: [number, number];
  heavenlyStem: HeavenlyStemName;
  earthlyBranch: EarthlyBranchName;
};

定義了星盤的 大限,此類型主要用在 Palace 內。

屬性解釋類型
range大限起止年齡 [起始年齡, 截止年齡][number, number]
heavenlyStem大限天干HeavenlyStemName
earthlyBranch大限地支EarthlyBranchName

DecadalHoroscope ​

ts
export type DecadalHoroscope = HoroscopeItem & {
  palaceName: PalaceName;
  ageRange: [number, number];
  yearRange: [number, number];
};

定義了 decadalList() 返回的大限列表項。

屬性解釋類型
palaceName大限所在的本命宮位PalaceName
ageRange大限起止虛歲[number, number]
yearRange大限起止年份[number, number]

該類型同時包含 HoroscopeItem 的全部屬性。


YearlyHoroscope ​

ts
export type YearlyHoroscope = HoroscopeItem & {
  age: number;
  year: number;
};

定義了 yearlyList() 返回的流年列表項。

屬性解釋類型
age流年對應的虛歲number
year流年年份number

該類型同時包含 HoroscopeItem 的全部屬性。


MonthlyHoroscope ​

ts
export type MonthlyHoroscope = YearlyHoroscope & {
  month: number;
  isLeapMonth: boolean;
  part: 'normal' | 'first' | 'second';
  dayRange: [number, number];
};

定義了 monthlyList() 返回的流月列表項。

屬性解釋類型
month農曆月份,正月為 1number
isLeapMonth是否為閏月boolean
part普通月份、閏月前半段或閏月後半段'normal' | 'first' | 'second'
dayRange該項對應的農曆日期範圍[number, number]

該類型同時包含 YearlyHoroscope 和 HoroscopeItem 的全部屬性。


Horoscope ​

ts
export type Horoscope = {
  lunarDate: string;
  solarDate: string;
  decadal: HoroscopeItem;
  age: {
    index: number;
    nominalAge: number;
  };
  yearly: HoroscopeItem;
  monthly: HoroscopeItem;
  daily: HoroscopeItem;
  hourly: HoroscopeItem;
};

定義了 運限 對象,包含 大限,流年,流月,流日,流時

屬性解釋類型
lunarDate農曆日期string
solarDate陽曆日期string
decadal大限HoroscopeItem
age小限{ index: number, nominalAge: number }
yearly流年HoroscopeItem & { yearlyDecStar: { jiangqian12: StarName[]; suiqian12: StarName[] } }
monthly流月HoroscopeItem
daily流日HoroscopeItem
hourly流時HoroscopeItem

星盤 ​

Astrolabe ​

ts
export type Astrolabe = {
  /** 陽曆日期 */
  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[];
};

定義了 星盤 對象

屬性解釋類型
gender性別 ^2.0.3GenderName
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[]

配置和插件 ^2.3.0 ​

ConfigMutagens ​

定義了全局配置中的 四化 參數。

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

ConfigBrightness ​

定義了全局配置中的 亮度 參數。

ts
type ConfigBrightness = Partial<Record<StarName, Brightness[]>>;

Config ​

定義排盤配置物件,可透過 astro.config() 設定後續排盤的預設值,亦可透過 withOptions({ config }) 僅覆蓋當前星盤;既有星盤保留產生時的配置(^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';
};

其中當 yearDivide 和 horoscopeDivide 為 normal 時,會以正月初一為分界,為 exact 時會以立春為分界。

dayDivide 僅影響晚子時(timeIndex 為 12)的日期歸屬:forward 將其歸入次日,current 將其歸入當日。

AstroType ^2.5.0 ​

定義中州派星盤類型。

ts
type AstroType = 'heaven' | 'earth' | 'human';
值說明
heaven天盤,預設值
earth地盤,以身宮干支起五行局,並以身宮為命宮
human人盤,以福德宮干支起五行局,並以福德宮為命宮

Plugin ​

定義了插件類型。實際上,插件就是一個函數。

ts
type Plugin = () => void;

提示

插件方法會隱式的接受一個 this 參數,該參數類型為 T extends FunctionalAstrolabe。詳細創建插件方法見 插件

© 2025 iztro.com All rights reserved.
友情链接: 紫微派