Skip to content

Commit feed73c

Browse files
committedAug 9, 2018
Improve type names
1 parent c634f4b commit feed73c

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed
 

‎index.d.ts

+9-9
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,20 @@ interface ObjectSchema<Properties extends Record<string, AnySchema>, Required ex
3535
required: Required[]
3636
}
3737

38-
interface ExtractedSchemaArray<Schema> extends Array<ExtractSchemaType<Schema>> {}
38+
interface ArrayFromSchema<Schema> extends Array<TypeFromSchema<Schema>> {}
3939

40-
declare type ExtractedSchemaObject<Properties, Required> = {
41-
[Key in keyof Properties]: (Key extends Required ? ExtractSchemaType<Properties[Key]> : ExtractSchemaType<Properties[Key]> | undefined)
40+
declare type ObjectFromSchema<Properties, Required> = {
41+
[Key in keyof Properties]: (Key extends Required ? TypeFromSchema<Properties[Key]> : TypeFromSchema<Properties[Key]> | undefined)
4242
}
4343

44-
declare type ExtractSchemaType<Schema> = (
44+
declare type TypeFromSchema<Schema> = (
4545
Schema extends EnumSchema<infer Enum> ? Enum
4646
: Schema extends NullSchema ? null
4747
: Schema extends BooleanSchema ? boolean
4848
: Schema extends NumberSchema ? number
4949
: Schema extends StringSchema ? string
50-
: Schema extends ArraySchema<infer ItemSchema> ? ExtractedSchemaArray<ItemSchema>
51-
: Schema extends ObjectSchema<infer Properties, infer Required> ? ExtractedSchemaObject<Properties, Required>
50+
: Schema extends ArraySchema<infer ItemSchema> ? ArrayFromSchema<ItemSchema>
51+
: Schema extends ObjectSchema<infer Properties, infer Required> ? ObjectFromSchema<Properties, Required>
5252
: never
5353
)
5454

@@ -61,7 +61,7 @@ declare namespace factory {
6161
}
6262
}
6363

64-
declare interface Validator<Schema, Output = ExtractSchemaType<Schema>> {
64+
declare interface Validator<Schema, Output = TypeFromSchema<Schema>> {
6565
(input: unknown, options?: any): input is Output
6666
errors: factory.ValidationError[]
6767
toJSON(): Schema
@@ -75,8 +75,8 @@ declare interface Factory {
7575
<Properties extends Record<string, AnySchema>, Required extends keyof Properties> (schema: ObjectSchema<Properties, Required>, options?: any): Validator<ObjectSchema<Properties, Required>>
7676
<Schema extends AnySchema> (schema: Schema, options?: any): Validator<Schema>
7777

78-
createFilter<Properties extends Record<string, AnySchema>, Required extends keyof Properties> (schema: ObjectSchema<Properties, Required>, options?: any): Filter<ExtractedSchemaObject<Properties, Required>>
79-
createFilter<Schema extends AnySchema> (schema: Schema, options?: any): Filter<ExtractSchemaType<Schema>>
78+
createFilter<Properties extends Record<string, AnySchema>, Required extends keyof Properties> (schema: ObjectSchema<Properties, Required>, options?: any): Filter<ObjectFromSchema<Properties, Required>>
79+
createFilter<Schema extends AnySchema> (schema: Schema, options?: any): Filter<TypeFromSchema<Schema>>
8080
}
8181

8282
declare const factory: Factory

0 commit comments

Comments
 (0)
Please sign in to comment.