Skip to content

类型定义

relationship-ts 提供完整的 TypeScript 类型定义。

导入类型

ts
import type {
  RelationshipOptions,
  Sex,
  OutputType,
  Chain,
  TitleData,
} from 'relationship-ts';

类型列表

Sex

性别类型:-1=未知,0=女性,1=男性

ts
type Sex = -1 | 0 | 1;

OutputType

输出类型:default=计算称谓,chain=计算关系链,pair=计算合称

ts
type OutputType = 'default' | 'chain' | 'pair';

RelationshipOptions

关系计算选项接口

ts
interface RelationshipOptions {
  /** 目标对象的称谓汉字表达 */
  text: string;
  /** 相对对象的称谓汉字表达,空表示自己 */
  target?: string;
  /** 本人性别:0表示女性, 1表示男性, -1表示未知 */
  sex?: Sex;
  /** 转换类型 */
  type?: OutputType;
  /** 称呼方式:true对方称呼我, false我称呼对方 */
  reverse?: boolean;
  /** 模式选择 */
  mode?: string;
  /** 最短关系:计算两者之间的最短关系 */
  optimal?: boolean;
}

Chain

关系链类型

ts
type Chain = string; // 如 "f,m,xb"

TitleData

称谓数据类型:键是关系链,值是对应的中文称谓数组

ts
type TitleData = Record<string, string[]>;

RelationSymbol

关系符号类型

ts
type RelationSymbol =
  | 'f' | 'm' | 'h' | 'w'
  | 's' | 'd'
  | 'xb' | 'xs'
  | 'ob' | 'lb'
  | 'os' | 'ls';

AgeModifier

年龄修饰符类型

ts
type AgeModifier = 'o' | 'l' | `${number}`;

Selector

选择器类型(带前导逗号的关系链)

ts
type Selector = `,${Chain}`;

使用示例

基础使用

ts
import relationship, type { RelationshipOptions } from 'relationship-ts';

const options: RelationshipOptions = {
  text: '爸爸的妈妈',
  sex: 1,
  type: 'default',
};

const result = relationship(options);
// result: string[]

类型推导

ts
import relationship from 'relationship-ts';

// 类型自动推导
const result = relationship({ text: '爸爸的妈妈' });
// result: string[]

函数参数类型

ts
import type { RelationshipOptions } from 'relationship-ts';

function getRelationship(options: RelationshipOptions): string[] {
  // ...
  return [];
}

完整类型导出

ts
// 导入所有类型
import type {
  RelationshipOptions,
  Sex,
  OutputType,
  Chain,
  TitleData,
  RelationSymbol,
  AgeModifier,
  Selector,
  ParsedOptions,
  RelationMap,
  PrefixMap,
  FilterRule,
  ReplaceRule,
  SimilarMap,
} from 'relationship-ts';

相关

基于 MIT 许可发布