vtils
Version:
一个面向业务的 JavaScript/TypeScript 实用程序库。
107 lines (106 loc) • 2.37 kB
TypeScript
export type LocaleValueFnParams<TExtra extends {} = {}> = {
path: string;
type: string;
label?: string;
value: any;
originalValue: any;
} & TExtra;
export type LocaleValueFn<TExtra extends {} = {}> = (params: LocaleValueFnParams<TExtra>) => string;
export type LocaleValue<TExtra extends {} = {}> = string | LocaleValueFn<TExtra>;
export interface MixedLocale {
default: LocaleValue;
required: LocaleValue;
oneOf: LocaleValue<{
values: string;
}>;
notOneOf: LocaleValue<{
values: string;
}>;
notType: LocaleValue;
defined: LocaleValue;
}
export interface StringLocale {
length: LocaleValue<{
length: number;
}>;
min: LocaleValue<{
min: number;
}>;
max: LocaleValue<{
max: number;
}>;
matches: LocaleValue<{
regex: RegExp;
}>;
email: LocaleValue<{
regex: RegExp;
}>;
url: LocaleValue<{
regex: RegExp;
}>;
trim: LocaleValue;
lowercase: LocaleValue;
uppercase: LocaleValue;
chineseMobilePhoneNumber: LocaleValue;
chineseIDCardNumber: LocaleValue;
}
export interface NumberLocale {
min: LocaleValue<{
min: number;
}>;
max: LocaleValue<{
max: number;
}>;
lessThan: LocaleValue<{
less: number;
}>;
moreThan: LocaleValue<{
more: number;
}>;
positive: LocaleValue<{
more: number;
}>;
negative: LocaleValue<{
less: number;
}>;
integer: LocaleValue;
id: LocaleValue;
positiveInteger: LocaleValue;
negativeInteger: LocaleValue;
nonPositive: LocaleValue;
nonNegative: LocaleValue;
nonPositiveInteger: LocaleValue;
nonNegativeInteger: LocaleValue;
}
export interface DateLocale {
min: LocaleValue<{
min: Date | string;
}>;
max: LocaleValue<{
max: Date | string;
}>;
}
export interface BooleanLocale {
}
export interface ObjectLocale {
noUnknown: LocaleValue<{
unknown: string;
}>;
}
export interface ArrayLocale {
min: LocaleValue<{
min: number;
}>;
max: LocaleValue<{
max: number;
}>;
}
export interface Locale {
mixed: MixedLocale;
string: StringLocale;
number: NumberLocale;
date: DateLocale;
boolean: BooleanLocale;
object: ObjectLocale;
array: ArrayLocale;
}