deno.land / x / hono@v4.2.5 / utils / types.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/* eslint-disable @typescript-eslint/no-explicit-any */export type Expect<T extends true> = Texport type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : falseexport type NotEqual<X, Y> = true extends Equal<X, Y> ? false : true
export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ( k: infer I) => void ? I : never
export type RemoveBlankRecord<T> = T extends Record<infer K, unknown> ? K extends string ? T : never : never
export type IfAnyThenEmptyObject<T> = 0 extends 1 & T ? {} : T
export type JSONPrimitive = string | boolean | number | null | undefinedexport type JSONArray = (JSONPrimitive | JSONObject | JSONArray)[]export type JSONObject = { [key: string]: JSONPrimitive | JSONArray | JSONObject | object }export type JSONValue = JSONObject | JSONArray | JSONPrimitive// Non-JSON values such as `Date` implement `.toJSON()`, so they can be transformed to a value assignable to `JSONObject`:export type JSONParsed<T> = T extends { toJSON(): infer J } ? (() => J) extends () => JSONObject ? J : JSONParsed<J> : T extends JSONPrimitive ? T : T extends Array<infer U> ? Array<JSONParsed<U>> : T extends object ? { [K in keyof T]: JSONParsed<T[K]> } : never
export type InterfaceToType<T> = T extends Function ? T : { [K in keyof T]: InterfaceToType<T[K]> }
export type RequiredKeysOf<BaseType extends object> = Exclude< { [Key in keyof BaseType]: BaseType extends Record<Key, BaseType[Key]> ? Key : never }[keyof BaseType], undefined>
export type HasRequiredKeys<BaseType extends object> = RequiredKeysOf<BaseType> extends never ? false : true
export type IsAny<T> = boolean extends (T extends never ? true : false) ? true : false
export type Prettify<T> = { [K in keyof T]: T[K]} & {}
hono

Version Info

Tagged at
a month ago