iztro
Version:
轻量级紫微斗数星盘生成库。可以通过出生年月日获取到紫微斗数星盘信息、生肖、星座等信息。This is a lightweight kit for generating astrolabes for Zi Wei Dou Shu (The Purple Star Astrology), an ancient Chinese astrology. It allows you to obtain your horoscope and personality analysis.
190 lines (189 loc) • 6.71 kB
TypeScript
import { Palace } from '../data/types';
import { Mutagen, PalaceName, StarName } from '../i18n';
import { IFunctionalAstrolabe } from './FunctionalAstrolabe';
/**
* 宫位类的接口定义。
*
* 文档地址:https://docs.iztro.com/posts/palace.html#functionalastrolabe
*/
export interface IFunctionalPalace extends Palace {
/**
* 判断某个宫位内是否有传入的星耀,要所有星耀都在宫位内才会返回true
*
* @version v1.0.0
*
* @param stars 星耀名称,可以包含主星、辅星、杂耀
* @returns true | false
*/
has: (stars: StarName[]) => boolean;
/**
* 判断某个宫位内是否有传入的星耀,要所有星耀都不在宫位内才会返回true
*
* @version v1.0.0
*
* @param stars 星耀名称,可以包含主星、辅星、杂耀
* @returnstrue | false
*/
notHave: (stars: StarName[]) => boolean;
/**
* 判断某个宫位内是否有传入星耀的其中一个,只要命中一个就会返回true
*
* @version v1.0.0
*
* @param stars 星耀名称,可以包含主星、辅星、杂耀
* @returns true | false
*/
hasOneOf: (stars: StarName[]) => boolean;
/**
* 判断宫位内是否有生年四化
*
* @version v1.2.0
*
* @param mutagen 四化名称【禄|权|科|忌】
* @returns true | false
*/
hasMutagen: (mutagen: Mutagen) => boolean;
/**
* 判断宫位内是否没有生年四化
*
* @version v1.2.0
*
* @param mutagen 四化名称【禄|权|科|忌】
* @returns true | false
*/
notHaveMutagen: (mutagen: Mutagen) => boolean;
/**
* 判断一个宫位是否为空宫(没有主星),
* 有些派别在宫位内有某些星耀的情况下,
* 是不会将该宫位判断为空宫的。
* 所以加入一个参数来传入星耀。
*
* @version v2.0.6
*
* @param excludeStars 星耀名称数组
*
* @returns {boolean} true | false
*/
isEmpty: (excludeStars?: StarName[]) => boolean;
/**
* 给宫位设置星盘对象
*
* @version v2.1.0
*
* @param astro 星盘对象
* @returns {void}
*/
setAstrolabe: (astro: IFunctionalAstrolabe) => void;
/**
* 获取当前宫位所在的星盘对象
*
* @version v2.1.0
*
* @returns {IFunctionalAstrolabe}
*/
astrolabe: () => IFunctionalAstrolabe | undefined;
/**
* 判断是否从源宫位飞化到目标宫位,四化可传入一个数组或者一个字符串,传入四化全部飞化到目标宫位即返回true
*
* @version v2.1.0
*
* @param to 目标宫位
* @param withMutagens 四化(禄、权、科、忌)
* @returns {boolean}
*/
fliesTo: (to: number | PalaceName, withMutagens: Mutagen | Mutagen[]) => boolean;
/**
* 判断是否从源宫位飞化其中一颗四化星到目标宫位,传入四化只要有一颗飞化到目标宫位即返回true
*
* @version v2.1.0
*
* @param to 目标宫位
* @param withMutagens 四化(禄、权、科、忌)
* @returns {boolean}
*/
fliesOneOfTo: (to: number | PalaceName, withMutagens: Mutagen[]) => boolean;
/**
* 判断是否没有从源宫位飞化到目标宫位,四化可传入一个数组或者一个字符串,传入四化全部没有飞化到目标宫位才返回true
*
* @version v2.1.0
*
* @param to 目标宫位
* @param withMutagens 四化(禄、权、科、忌)
* @returns {boolean}
*/
notFlyTo: (to: number | PalaceName, withMutagens: Mutagen | Mutagen[]) => boolean;
/**
* 判断宫位是否有自化,传入四化数组时需要全部满足才返回true
*
* @version v2.1.0
*
* @param withMutagens 四化(禄、权、科、忌)
* @returns {boolean}
*/
selfMutaged: (withMutagens: Mutagen | Mutagen[]) => boolean;
/**
* 判断宫位是否有自化,若不传入参数则会判断所有四化,满足一颗即返回true
*
* @version v2.1.0
*
* @param withMutagens 四化(禄、权、科、忌)
* @returns {boolean}
*/
selfMutagedOneOf: (withMutagens?: Mutagen[]) => boolean;
/**
* 判断宫位是否有自化,如果传入参数,则只判断传入的四化是否有自化,否则将会判断所有四化
*
* @version v2.1.0
*
* @param withMutagens 【可选】四化(禄、权、科、忌)
* @returns {boolean}
*/
notSelfMutaged: (withMutagens?: Mutagen | Mutagen[]) => boolean;
/**
* 获取当前宫位产生四化的4个宫位数组,下标分别对【禄,权,科,忌】
*
* @version v2.1.0
*
* @returns {(IFunctionalPalace | undefined)[]}
*/
mutagedPlaces: () => (IFunctionalPalace | undefined)[];
}
/**
* 宫位类。
*
* 文档地址:https://docs.iztro.com/posts/palace.html#functionalastrolabe
*/
export default class FunctionalPalace implements IFunctionalPalace {
private _astrolabe?;
index: number;
name: PalaceName;
isBodyPalace: boolean;
isOriginalPalace: boolean;
heavenlyStem: import("../i18n").HeavenlyStemName;
earthlyBranch: import("../i18n").EarthlyBranchName;
majorStars: import("../star/FunctionalStar").default[];
minorStars: import("../star/FunctionalStar").default[];
adjectiveStars: import("../star/FunctionalStar").default[];
changsheng12: StarName;
boshi12: StarName;
jiangqian12: StarName;
suiqian12: StarName;
decadal: import("../data/types").Decadal;
ages: number[];
constructor(data: Palace);
has: (stars: StarName[]) => boolean;
notHave: (stars: StarName[]) => boolean;
hasOneOf: (stars: StarName[]) => boolean;
hasMutagen: (mutagen: Mutagen) => boolean;
notHaveMutagen: (mutagen: Mutagen) => boolean;
isEmpty: (excludeStars?: StarName[]) => boolean;
setAstrolabe: (astro: IFunctionalAstrolabe) => IFunctionalAstrolabe;
astrolabe: () => IFunctionalAstrolabe | undefined;
fliesTo: (to: number | PalaceName, withMutagens: Mutagen | Mutagen[]) => boolean;
fliesOneOfTo: (to: number | PalaceName, withMutagens: Mutagen[]) => boolean;
notFlyTo: (to: number | PalaceName, withMutagens: Mutagen | Mutagen[]) => boolean;
selfMutaged: (withMutagens: Mutagen | Mutagen[]) => boolean;
selfMutagedOneOf: (withMutagens?: Mutagen[]) => boolean;
notSelfMutaged: (withMutagens?: Mutagen | Mutagen[]) => boolean;
mutagedPlaces: () => (IFunctionalPalace | undefined)[];
}