mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 10:56:53 +00:00
🤖 Merge PR #45428 [yup] Export Locale interfaces for augmentation by @fjc0k
* [yup] Export Locale interfaces for augmentation * [yup] Update maintainer * [yup] Export BasicArraySchema
This commit is contained in:
parent
dd6514849a
commit
3adfafbd7d
15
types/yup/index.d.ts
vendored
15
types/yup/index.d.ts
vendored
@ -13,6 +13,7 @@
|
||||
// Kalley Powell <https://github.com/kalley>
|
||||
// Elías García <https://github.com/elias-garcia>
|
||||
// Ian Sanders <https://github.com/iansan5653>
|
||||
// Jay Fong <https://github.com/fjc0k>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 3.6
|
||||
|
||||
@ -250,7 +251,7 @@ export interface ArraySchemaConstructor {
|
||||
new (): NotRequiredArraySchema<{}>;
|
||||
}
|
||||
|
||||
interface BasicArraySchema<E, T extends E[] | null | undefined> extends Schema<T> {
|
||||
export interface BasicArraySchema<E, T extends E[] | null | undefined> extends Schema<T> {
|
||||
min(limit: number | Ref, message?: ArrayLocale['min']): this;
|
||||
max(limit: number | Ref, message?: ArrayLocale['max']): this;
|
||||
ensure(): this;
|
||||
@ -572,7 +573,7 @@ export interface FormatErrorParams {
|
||||
|
||||
export type LocaleValue = string | ((params: FormatErrorParams) => string);
|
||||
|
||||
interface MixedLocale {
|
||||
export interface MixedLocale {
|
||||
default?: TestOptionsMessage;
|
||||
required?: TestOptionsMessage;
|
||||
oneOf?: TestOptionsMessage<{ values: any }>;
|
||||
@ -580,7 +581,7 @@ interface MixedLocale {
|
||||
notType?: LocaleValue;
|
||||
}
|
||||
|
||||
interface StringLocale {
|
||||
export interface StringLocale {
|
||||
length?: TestOptionsMessage<{ length: number }>;
|
||||
min?: TestOptionsMessage<{ min: number }>;
|
||||
max?: TestOptionsMessage<{ max: number }>;
|
||||
@ -592,7 +593,7 @@ interface StringLocale {
|
||||
uppercase?: TestOptionsMessage;
|
||||
}
|
||||
|
||||
interface NumberLocale {
|
||||
export interface NumberLocale {
|
||||
min?: TestOptionsMessage<{ min: number }>;
|
||||
max?: TestOptionsMessage<{ max: number }>;
|
||||
lessThan?: TestOptionsMessage<{ less: number }>;
|
||||
@ -602,16 +603,16 @@ interface NumberLocale {
|
||||
integer?: TestOptionsMessage;
|
||||
}
|
||||
|
||||
interface DateLocale {
|
||||
export interface DateLocale {
|
||||
min?: TestOptionsMessage<{ min: Date | string }>;
|
||||
max?: TestOptionsMessage<{ max: Date | string }>;
|
||||
}
|
||||
|
||||
interface ObjectLocale {
|
||||
export interface ObjectLocale {
|
||||
noUnknown?: TestOptionsMessage;
|
||||
}
|
||||
|
||||
interface ArrayLocale {
|
||||
export interface ArrayLocale {
|
||||
min?: TestOptionsMessage<{ min: number }>;
|
||||
max?: TestOptionsMessage<{ max: number }>;
|
||||
}
|
||||
|
||||
@ -964,3 +964,32 @@ const arrayOfOptional = yup.array().of(
|
||||
yup.object({ bar: yup.string() }),
|
||||
).defined();
|
||||
const arrayOfOptionalExample: yup.InferType<typeof arrayOfOptional> = [{}];
|
||||
|
||||
// augment locale
|
||||
declare module './index' {
|
||||
interface StringLocale {
|
||||
chineseMobilePhoneNumber?: TestOptionsMessage;
|
||||
}
|
||||
|
||||
interface StringSchema<T extends string | null | undefined = string | undefined> extends Schema<T> {
|
||||
chineseMobilePhoneNumber(message?: StringLocale['chineseMobilePhoneNumber']): StringSchema<T>;
|
||||
}
|
||||
}
|
||||
yup.setLocale({
|
||||
string: {
|
||||
// tslint:disable-next-line:no-invalid-template-strings
|
||||
chineseMobilePhoneNumber: '${path} must be a Chinese mobile phone number',
|
||||
},
|
||||
});
|
||||
yup.addMethod(
|
||||
yup.string,
|
||||
'chineseMobilePhoneNumber',
|
||||
function(this: yup.MixedSchema<any>, message: string) {
|
||||
return this.test(
|
||||
'chineseMobilePhoneNumber',
|
||||
message,
|
||||
() => true,
|
||||
);
|
||||
},
|
||||
);
|
||||
yup.string().chineseMobilePhoneNumber('please input a Chinese mobile phone number');
|
||||
|
||||
Loading…
Reference in New Issue
Block a user