type-tls 2.4.4 → 2.4.5

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/dist/index.d.ts CHANGED
@@ -168,10 +168,40 @@ export declare type Optional<T> = T | null | undefined;
168
168
  export declare type OptionalBoolean = Optional<boolean>;
169
169
  /**
170
170
  * 获取值类型为指定类型的所有 key
171
+ *
172
+ * @typeParam Target - 目标对象
173
+ * @typeParam Value - 要获取的key的对应值的类型
171
174
  */
172
175
  export declare type KeyOfValue<Target, Value> = {
173
176
  [K in keyof Target]: Target[K] extends Value ? K : never;
174
177
  }[keyof Target];
178
+ /**
179
+ * 获取值类型不是指定类型的所有 key
180
+ *
181
+ * @typeParam Target - 目标对象
182
+ * @typeParam Value - 被排除的值的类型
183
+ */
184
+ export declare type KeyOfNonValue<Target, Value> = {
185
+ [K in keyof Target]: Target[K] extends Value ? never : K;
186
+ }[keyof Target];
187
+ /**
188
+ * 获取值类型包含指定类型的所有 key
189
+ *
190
+ * @typeParam Target - 目标对象
191
+ * @typeParam Value - 要获取的key的对应值应包含的类型
192
+ */
193
+ export declare type KeyOfContainsValue<Target, Value> = {
194
+ [K in keyof Target]: Value extends Target[K] ? K : never;
195
+ }[keyof Target];
196
+ /**
197
+ * 获取值类型不应包含指定类型的所有 key
198
+ *
199
+ * @typeParam Target - 目标对象
200
+ * @typeParam Value - 不应包含的值的类型
201
+ */
202
+ export declare type KeyOfNonContainsValue<Target, Value> = {
203
+ [K in keyof Target]: Value extends Target[K] ? never : K;
204
+ }[keyof Target];
175
205
  /**
176
206
  * 可将源类型 SourType 中的 类型 MatchType 替换为 新的类型 NewType
177
207
  */
@@ -434,6 +464,11 @@ export declare type MethodParams<Obj, Method extends keyof Obj, ParamIndex exten
434
464
  * @typeParam Method - 对象方法的名字
435
465
  */
436
466
  export declare type MethodReturnType<Obj, Method extends keyof Obj> = Obj[Method] extends AnyFunction ? ReturnType<Obj[Method]> : never;
467
+ /**
468
+ * 获取数组元素的类型
469
+ * @typeParam Arr 数组
470
+ */
471
+ export declare type ArrayItemType<Arr> = Arr extends (infer Item)[] ? Item : never;
437
472
  /**
438
473
  * 获取 Promise 解决的类型的值
439
474
  * @remarks
@@ -11,6 +11,12 @@
11
11
  */
12
12
  export declare type AnyFunction = (...args: any) => any;
13
13
 
14
+ /**
15
+ * 获取数组元素的类型
16
+ * @typeParam Arr 数组
17
+ */
18
+ export declare type ArrayItemType<Arr> = Arr extends (infer Item)[] ? Item : never;
19
+
14
20
  /**
15
21
  * 类的类型、构造函数的类型
16
22
  *
@@ -320,8 +326,41 @@ export declare function isIterator(target: any): boolean;
320
326
  */
321
327
  export declare function isObject(target: any): boolean;
322
328
 
329
+ /**
330
+ * 获取值类型包含指定类型的所有 key
331
+ *
332
+ * @typeParam Target - 目标对象
333
+ * @typeParam Value - 要获取的key的对应值应包含的类型
334
+ */
335
+ export declare type KeyOfContainsValue<Target, Value> = {
336
+ [K in keyof Target]: Value extends Target[K] ? K : never;
337
+ }[keyof Target];
338
+
339
+ /**
340
+ * 获取值类型不应包含指定类型的所有 key
341
+ *
342
+ * @typeParam Target - 目标对象
343
+ * @typeParam Value - 不应包含的值的类型
344
+ */
345
+ export declare type KeyOfNonContainsValue<Target, Value> = {
346
+ [K in keyof Target]: Value extends Target[K] ? never : K;
347
+ }[keyof Target];
348
+
349
+ /**
350
+ * 获取值类型不是指定类型的所有 key
351
+ *
352
+ * @typeParam Target - 目标对象
353
+ * @typeParam Value - 被排除的值的类型
354
+ */
355
+ export declare type KeyOfNonValue<Target, Value> = {
356
+ [K in keyof Target]: Target[K] extends Value ? never : K;
357
+ }[keyof Target];
358
+
323
359
  /**
324
360
  * 获取值类型为指定类型的所有 key
361
+ *
362
+ * @typeParam Target - 目标对象
363
+ * @typeParam Value - 要获取的key的对应值的类型
325
364
  */
326
365
  export declare type KeyOfValue<Target, Value> = {
327
366
  [K in keyof Target]: Target[K] extends Value ? K : never;
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [type-tls](./type-tls.md) &gt; [ArrayItemType](./type-tls.arrayitemtype.md)
4
+
5
+ ## ArrayItemType type
6
+
7
+ 获取数组元素的类型
8
+
9
+ <b>Signature:</b>
10
+
11
+ ```typescript
12
+ export declare type ArrayItemType<Arr> = Arr extends (infer Item)[] ? Item : never;
13
+ ```
@@ -0,0 +1,15 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [type-tls](./type-tls.md) &gt; [KeyOfContainsValue](./type-tls.keyofcontainsvalue.md)
4
+
5
+ ## KeyOfContainsValue type
6
+
7
+ 获取值类型包含指定类型的所有 key
8
+
9
+ <b>Signature:</b>
10
+
11
+ ```typescript
12
+ export declare type KeyOfContainsValue<Target, Value> = {
13
+ [K in keyof Target]: Value extends Target[K] ? K : never;
14
+ }[keyof Target];
15
+ ```
@@ -0,0 +1,15 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [type-tls](./type-tls.md) &gt; [KeyOfNonContainsValue](./type-tls.keyofnoncontainsvalue.md)
4
+
5
+ ## KeyOfNonContainsValue type
6
+
7
+ 获取值类型不应包含指定类型的所有 key
8
+
9
+ <b>Signature:</b>
10
+
11
+ ```typescript
12
+ export declare type KeyOfNonContainsValue<Target, Value> = {
13
+ [K in keyof Target]: Value extends Target[K] ? never : K;
14
+ }[keyof Target];
15
+ ```
@@ -0,0 +1,15 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [type-tls](./type-tls.md) &gt; [KeyOfNonValue](./type-tls.keyofnonvalue.md)
4
+
5
+ ## KeyOfNonValue type
6
+
7
+ 获取值类型不是指定类型的所有 key
8
+
9
+ <b>Signature:</b>
10
+
11
+ ```typescript
12
+ export declare type KeyOfNonValue<Target, Value> = {
13
+ [K in keyof Target]: Target[K] extends Value ? never : K;
14
+ }[keyof Target];
15
+ ```
@@ -57,8 +57,12 @@ type-tls 封装了与类型相关的工具,比如获取数据的类型 或 类
57
57
  | Type Alias | Description |
58
58
  | --- | --- |
59
59
  | [AnyFunction](./type-tls.anyfunction.md) | 表示任意的函数类型 |
60
+ | [ArrayItemType](./type-tls.arrayitemtype.md) | 获取数组元素的类型 |
60
61
  | [ExactType](./type-tls.exacttype.md) | 精确类型 |
61
62
  | [ExactTypeName](./type-tls.exacttypename.md) | 精确类型的字符串表示 |
63
+ | [KeyOfContainsValue](./type-tls.keyofcontainsvalue.md) | 获取值类型包含指定类型的所有 key |
64
+ | [KeyOfNonContainsValue](./type-tls.keyofnoncontainsvalue.md) | 获取值类型不应包含指定类型的所有 key |
65
+ | [KeyOfNonValue](./type-tls.keyofnonvalue.md) | 获取值类型不是指定类型的所有 key |
62
66
  | [KeyOfValue](./type-tls.keyofvalue.md) | 获取值类型为指定类型的所有 key |
63
67
  | [LooseType](./type-tls.loosetype.md) | 宽松的类型 |
64
68
  | [LooseTypeName](./type-tls.loosetypename.md) | 宽松类型的字符串表示 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "type-tls",
3
- "version": "2.4.4",
3
+ "version": "2.4.5",
4
4
  "description": "type-tls 封装了与类型相关的工具,比如:获取数据的类型 或 类型名字、判断数据的类型 等",
5
5
  "main": "dist/type-tls.umd.js",
6
6
  "module": "dist/type-tls.mjs",