inferred-types 0.41.2 → 0.41.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -70
- package/dist/inferred-types/tsconfig.tsbuildinfo +1 -1
- package/dist/runtime/tsconfig.tsbuildinfo +1 -1
- package/dist/types/containers/WithKey.d.ts +9 -5
- package/dist/types/containers/WithKey.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -2
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { AnyObject, IfAnd, First, AsNumber, Container, EmptyContainer, FixedLengthArray, Increment, Tuple, AsString, ExpandRecursively, ArrayElementType, IfDefined, IsUndefined, AfterFirst, Not } from "../index";
|
|
1
|
+
import { AnyObject, IfAnd, First, AsNumber, Container, EmptyContainer, FixedLengthArray, Increment, Tuple, AsString, ExpandRecursively, ArrayElementType, IfDefined, IsUndefined, AfterFirst, Not, IfNever } from "../index";
|
|
2
2
|
type MergeTuples<TDefaults extends Tuple, TOverrides extends Tuple, TResults extends Tuple = []> = [] extends TDefaults ? [...TResults, ...TOverrides] : MergeTuples<AfterFirst<TDefaults>, AfterFirst<TOverrides>, IfAnd<[
|
|
3
|
-
IsUndefined<First<TDefaults
|
|
4
|
-
|
|
3
|
+
Not<IsUndefined<First<TDefaults>>>,
|
|
4
|
+
IsUndefined<First<TOverrides>>
|
|
5
5
|
], [
|
|
6
6
|
...TResults,
|
|
7
7
|
First<TDefaults>
|
|
8
8
|
], [
|
|
9
9
|
...TResults,
|
|
10
|
-
First<TOverrides
|
|
10
|
+
IfNever<First<TOverrides>, unknown, First<TOverrides>>
|
|
11
11
|
]>>;
|
|
12
12
|
/**
|
|
13
13
|
* **WithKey**`<T, K>`
|
|
@@ -19,9 +19,13 @@ type MergeTuples<TDefaults extends Tuple, TOverrides extends Tuple, TResults ext
|
|
|
19
19
|
* - If `T[K]`'s type is unknown then the type is set to _unknown_
|
|
20
20
|
*
|
|
21
21
|
* This is intended to be used with tuples, arrays, and object types.
|
|
22
|
+
*
|
|
23
|
+
* **Note:** for numeric arrays, a contiguous set of numeric keys is always
|
|
24
|
+
* provided so all elements/keys added by this utility which were not
|
|
25
|
+
* present in `T` will have a type of _unknown_.
|
|
22
26
|
*/
|
|
23
27
|
export type WithKey<T extends Container, K extends string | number> = T extends Tuple ? EmptyContainer<T> extends true ? FixedLengthArray<ArrayElementType<T>, Increment<AsNumber<K>>> : IfDefined<T[AsNumber<K>], T, MergeTuples<[
|
|
24
|
-
...FixedLengthArray<
|
|
28
|
+
...FixedLengthArray<unknown, AsNumber<K>>,
|
|
25
29
|
K
|
|
26
30
|
], T>> : T extends AnyObject ? EmptyContainer<T> extends true ? Record<K, unknown> : K extends keyof T ? T : ExpandRecursively<T & Record<AsString<K>, unknown>> : never;
|
|
27
31
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WithKey.d.ts","sourceRoot":"","sources":["../../../src/types/containers/WithKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAI,WAAW,EAAE,UAAU,EAAE,GAAG,EAAG,iBAAwB;
|
|
1
|
+
{"version":3,"file":"WithKey.d.ts","sourceRoot":"","sources":["../../../src/types/containers/WithKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAI,WAAW,EAAE,UAAU,EAAE,GAAG,EAAG,OAAO,EAAG,iBAAwB;AAExO,KAAK,WAAW,CACd,SAAS,SAAS,KAAK,EACvB,UAAU,SAAS,KAAK,EACxB,QAAQ,SAAS,KAAK,GAAG,EAAE,IACzB,EAAE,SAAS,SAAS,GACtB,CAAC,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC,GAC5B,WAAW,CACT,UAAU,CAAC,SAAS,CAAC,EACrB,UAAU,CAAC,UAAU,CAAC,EACtB,KAAK,CACH;IAAE,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAAE,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;CAAG,EACvE;IAAC,GAAG,QAAQ;IAAE,KAAK,CAAC,SAAS,CAAC;CAAC,EAC/B;IAAC,GAAG,QAAQ;IAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;CAAC,CACtE,CACF,CAAC;AAGJ;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,OAAO,CACjB,CAAC,SAAS,SAAS,EACnB,CAAC,SAAS,MAAM,GAAG,MAAM,IACvB,CAAC,SAAS,KAAK,GACf,cAAc,CAAC,CAAC,CAAC,SAAS,IAAI,GAE5B,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAC7D,SAAS,CACP,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAEd,CAAC,EAED,WAAW,CACT;IAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAAE,CAAC;CAAC,EAC9C,CAAC,CACF,CACF,GACH,CAAC,SAAS,SAAS,GACjB,cAAc,CAAC,CAAC,CAAC,SAAS,IAAI,GAC5B,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,GAClB,CAAC,SAAS,MAAM,CAAC,GACf,CAAC,GACD,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAEzD,KAAK,CAAC"}
|