類型定義
概述
本頁介紹了 iztro 中的類型定義,除了 國際化類型 被定義在了 i18n 文件夾內,其他類型都定義在 types 文件夾內。
妳可以使用如下代碼引入 國際化類型:
import { HeavenlyStemName } from "iztro/lib/i18n";import { HeavenlyStemName } from "iztro/lib/i18n";而當妳需要引入其他類型的時候,則需要:
import { Palace } from "iztro/lib/data/types";import { Palace } from "iztro/lib/data/types";提示
如果妳發現 翻譯 和 類型定義 中有不對或者不恰當的地方,可以在 這裏 創建 Issue 指出,非常感謝。
國際化類型
iztro 為了支持國際化輸入輸出,對需要進行參數輸入輸出的數據進行了多語言定義,在輸入的時候,妳可以輸入 任意語言 的值,比如在需要傳 HeavenlyStemName 的地方,妳可以傳入 甲,也可以傳入 갑 或者 jia。
比如在調用getHoroscopeStar()方法的時候,妳可以以中文的幹支作為參數:
import { getHoroscopeStar } from "iztro/lib/star";
getHoroscopeStar("甲", "子", "decadal");import { getHoroscopeStar } from "iztro/lib/star";
getHoroscopeStar("甲", "子", "decadal");也可以用其他語言的翻譯作為參數甚至中文和外文混合使用,也是可以的:
import { getHoroscopeStar } from "iztro/lib/star";
getHoroscopeStar("갑", "zi", "decadal");import { getHoroscopeStar } from "iztro/lib/star";
getHoroscopeStar("갑", "zi", "decadal");當然輸出的時候會統壹按照妳指定的語言進行輸出。妳可以在調用上述方法之前設置妳的輸出語言:
import { setLanguage } from "iztro/lib/i18n";
setLanguage("ko-KR");
const horoscopeStar = getHoroscopeStar("甲", "zi", "decadal");import { setLanguage } from "iztro/lib/i18n";
setLanguage("ko-KR");
const horoscopeStar = getHoroscopeStar("甲", "zi", "decadal");此時 horoscopeStar 的輸出結果會是 韓文 的。
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"
}
]
][
[
{
"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
定義了紫微鬥數中 星耀 的名稱,包括 流耀
紫微 | 天機 | 太陽 | 武曲 | 天同 | 廉貞 | 天府 | 太陰 | 貪狼 | 巨門 | 天相 | 天梁 | 七殺 | 破軍 | 左輔 | 右弼 | 文昌 | 文曲 | 祿存 | 天馬 | 擎羊 | 陀羅 | 火星 | 鈴星 | 天魁 | 天鉞 | 地空 | 地劫 | 天空 | 天刑 | 天姚 | 解神 | 陰煞 | 天喜 | 天官 | 天福 | 天哭 | 天虛 | 龍池 | 鳳閣 | 紅鸞 | 孤辰 | 寡宿 | 蜚廉 | 破碎 | 臺輔 | 封誥 | 天巫 | 天月 | 三臺 | 八座 | 恩光 | 天貴 | 天才 | 天壽 | 截空 | 旬中 | 旬空 | 空亡 | 截路 | 月德 | 天傷 | 天使 | 天廚 | 長生 | 沐浴 | 冠帶 | 臨官 | 帝旺 | 衰 | 病 | 死 | 墓 | 絕 | 胎 | 養 | 博士 | 力士 | 青龍 | 小耗 | 將軍 | 奏書 | 飛廉 | 喜神 | 病符 | 大耗 | 伏兵 | 官府 | 歲建 | 晦氣 | 喪門 | 貫索 | 官符 | 龍德 | 白虎 | 天德 | 吊客 | 將星 | 攀鞍 | 歲驛 | 息神 | 華蓋 | 劫煞 | 災煞 | 天煞 | 指背 | 鹹池 | 月煞 | 亡神 | 運魁 | 運鉞 | 運昌 | 運曲 | 運鸞 | 運喜 | 運祿 | 運羊 | 運陀 | 運馬 | 流魁 | 流鉞 | 流昌 | 流曲 | 流鸞 | 流喜 | 流祿 | 流羊 | 流陀 | 流馬 | 年解
FiveElementsClassName
定義了紫微鬥數中 五行局 的名稱
水二局 | 木三局 | 金四局 | 土五局 | 火六局
GenderName
定義 性別 的名稱
男 | 女
通用
Language
export type Language = `zh-CN` | `zh-TW` | `en-US` | `ko-KR` | `ja-JP`;export type Language = `zh-CN` | `zh-TW` | `en-US` | `ko-KR` | `ja-JP`;定義了支持的 語言,目前支持的語言有:
zh-CN:簡體中文zh-TW:繁體中文en-US:Englishko-KR:한국어ja-JP:日本語
Scope
export type Scope = "origin" | "decadal" | "yearly";export type Scope = "origin" | "decadal" | "yearly";定義了星耀的 作用範圍,用於區分本命星耀和流耀:
origin:本命星耀decadal:大限星耀yearly:流年星耀
StarType
export type StarType =
| "major"
| "soft"
| "tough"
| "adjective"
| "flower"
| "helper"
| "lucun"
| "tianma";export type StarType =
| "major"
| "soft"
| "tough"
| "adjective"
| "flower"
| "helper"
| "lucun"
| "tianma";定義了星耀 類型,其中 桃花星 和 解神星(包含 年解)雖然是雜耀,但是在解盤中有著特殊的意義,所以單獨歸類,祿存 和 天馬 二輔星也是比較特殊,所以單獨歸類:
major:主星soft:吉星tough:煞星adjective:雜耀flower:桃花helper:解神lucun:祿存tianma:天馬
星耀
Star
export type Star = {
name: StarName;
type: StarType;
scope: Scope;
brightness?: Brightness;
mutagen?: Mutagen;
};export type Star = {
name: StarName;
type: StarType;
scope: Scope;
brightness?: Brightness;
mutagen?: Mutagen;
};定義了 星耀 對象
| 屬性 | 解釋 | 類型 |
|---|---|---|
name | 星耀名字 | StarName |
type | 星耀類型 | StarType |
scope | 作用範圍 | Scope |
brightness | 星耀亮度 | Brightness |
mutagen | 四化 | Mutagen |
宮位
SoulAndBody
export type SoulAndBody = {
soulIndex: number;
bodyIndex: number;
heavenlyStemOfSoul: HeavenlyStemName;
earthlyBranchOfSoul: EarthlyBranchName;
};export type SoulAndBody = {
soulIndex: number;
bodyIndex: number;
heavenlyStemOfSoul: HeavenlyStemName;
earthlyBranchOfSoul: EarthlyBranchName;
};定義了 命宮 和 身宮 位置信息
| 屬性 | 解釋 | 類型 |
|---|---|---|
soulIndex | 命宮索引 | number |
bodyIndex | 身宮索引 | number |
heavenlyStemOfSoul | 命宮天幹 | HeavenlyStemName |
earthlyBranchOfSoul | 命宮地支 | 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[];
};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
export type SurroundedPalaces = {
target: IFunctionalPalace;
opposite: IFunctionalPalace;
wealth: IFunctionalPalace;
career: IFunctionalPalace;
};export type SurroundedPalaces = {
target: IFunctionalPalace;
opposite: IFunctionalPalace;
wealth: IFunctionalPalace;
career: IFunctionalPalace;
};定義了 三方四正 對象
| 屬性 | 解釋 | 類型 |
|---|---|---|
target | 本宮 | IFunctionalPalace |
opposite | 對宮 | IFunctionalPalace |
wealth | 財帛位 | IFunctionalPalace |
career | 官祿位 | IFunctionalPalace |
運限
HoroscopeItem
export type HoroscopeItem = {
index: number;
heavenlyStem: HeavenlyStemName;
earthlyBranch: EarthlyBranchName;
palaceNames: PalaceName[];
mutagen: StarName[];
stars?: Star[][];
};export type HoroscopeItem = {
index: number;
heavenlyStem: HeavenlyStemName;
earthlyBranch: EarthlyBranchName;
palaceNames: PalaceName[];
mutagen: StarName[];
stars?: Star[][];
};定義了 運限 對象
| 屬性 | 解釋 | 類型 |
|---|---|---|
index | 所在宮位的索引 | number |
heavenlyStem | 運限天幹 | HeavenlyStemName |
earthlyBranch | 運限地支 | EarthlyBranchName |
palaceNames | 運限的十二宮 | PalaceName[] |
mutagen | 四化星 | StarName[] |
stars | 流耀 | Star[][] |
Decadal
export type Decadal = {
range: [number, number];
heavenlyStem: HeavenlyStemName;
earthlyBranch: EarthlyBranchName;
};export type Decadal = {
range: [number, number];
heavenlyStem: HeavenlyStemName;
earthlyBranch: EarthlyBranchName;
};定義了星盤的 大限,此類型主要用在 Palace 內。
| 屬性 | 解釋 | 類型 |
|---|---|---|
range | 大限起止年齡 [起始年齡, 截止年齡] | [number, number] |
heavenlyStem | 大限天幹 | HeavenlyStemName |
earthlyBranch | 大限地支 | EarthlyBranchName |
Horoscope
export type Horoscope = {
lunarDate: string;
solarDate: string;
decadal: HoroscopeItem;
age: {
index: number;
nominalAge: number;
};
yearly: HoroscopeItem;
monthly: HoroscopeItem;
daily: HoroscopeItem;
hourly: HoroscopeItem;
};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 |
monthly | 流月 | HoroscopeItem |
daily | 流日 | HoroscopeItem |
hourly | 流時 | HoroscopeItem |
星盤
Astrolabe
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[];
};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[];
};定義了 星盤 對象
| 屬性 | 解釋 | 類型 |
|---|---|---|
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[] |