类型定义
概述
本页介绍了 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[] |