province-city-area
Version:
province-city-area
33 lines (31 loc) • 1.94 kB
TypeScript
type SortOrder = "asc" | "desc" | "ASC" | "DESC";
type SortSpec<T extends object> = Partial<Record<keyof T, SortOrder>>;
type FieldSpec<T extends object> = Array<keyof T> | Partial<Record<keyof T, string>>;
interface BaseRecord {
id: string;
name: string;
fullName: string;
pinyin: string;
pinyinInitial: string;
}
interface ProvinceRecord extends BaseRecord {
shortName: string;
}
interface CityRecord extends BaseRecord {
areaCode: string;
}
interface AreaRecord extends BaseRecord {
areaCode: string;
}
type RegionRecord = ProvinceRecord | CityRecord | AreaRecord;
declare const orderBy: <T extends object>(collection: T[] | undefined, sort?: SortSpec<T>) => T[];
declare function getProvinces(): ProvinceRecord[];
declare function getProvinces(field: undefined, sort?: SortSpec<ProvinceRecord>): ProvinceRecord[];
declare function getProvinces(field: FieldSpec<ProvinceRecord>, sort?: SortSpec<ProvinceRecord>): Array<Partial<ProvinceRecord> | Record<string, unknown>>;
declare function getCitys(pid: number | string | undefined): CityRecord[];
declare function getCitys(pid: number | string | undefined, field: undefined, sort?: SortSpec<CityRecord>): CityRecord[];
declare function getCitys(pid: number | string | undefined, field: FieldSpec<CityRecord>, sort?: SortSpec<CityRecord>): Array<Partial<CityRecord> | Record<string, unknown>>;
declare function getAreas(pid: number | string | undefined): AreaRecord[];
declare function getAreas(pid: number | string | undefined, field: undefined, sort?: SortSpec<AreaRecord>): AreaRecord[];
declare function getAreas(pid: number | string | undefined, field: FieldSpec<AreaRecord>, sort?: SortSpec<AreaRecord>): Array<Partial<AreaRecord> | Record<string, unknown>>;
export { type AreaRecord, type BaseRecord, type CityRecord, type FieldSpec, type ProvinceRecord, type RegionRecord, type SortOrder, type SortSpec, getAreas, getCitys, getProvinces, orderBy };