type-tls 2.5.0 → 2.7.0

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
@@ -1,10 +1,52 @@
1
1
  /**
2
- * 处理类型相关的工具
2
+ * 判断 code 是否是有校的 js 标识符
3
+ * @param code - 标识符的字符串
4
+ */
5
+ export declare function isIdentifier(code: string): boolean;
6
+ /**
7
+ * 判断函数是否是箭头函数
8
+ * @param fun - 被判断的函数
9
+ */
10
+ export declare function isArrowFunction(fun: Function): boolean;
11
+ /**
12
+ * 判断函数是否是 async 异步函数
3
13
  * @remarks
4
- * type-tls 封装了与类型相关的工具,比如获取数据的类型 类型名字、判断数据的类型 等
14
+ * 异步函数 不包含 异步生成器函数 AsyncGeneratorFunction
15
+ * @param fun - 被判断的函数
16
+ */
17
+ export declare function isAsyncFunction(fun: Function): boolean;
18
+ /**
19
+ * 判断函数是否是生成器函数
5
20
  *
6
- * @packageDocumentation
21
+ * @remarks
22
+ * 生成器函数 不包含 异步生成器函数 AsyncGeneratorFunction
23
+ * @param fun - 被判断的函数
7
24
  */
25
+ export declare function isGeneratorFunction(fun: Function): boolean;
26
+ /**
27
+ * 判断函数是否是异步生成器函数
28
+ * @param fun - 被判断的函数
29
+ */
30
+ export declare function isAsyncGeneratorFunction(fun: Function): boolean;
31
+ /**
32
+ * 判断是否是匿名函数
33
+ *
34
+ * @remarks
35
+ * 判断函数在被定义时是否是通过匿名函数来定义的。
36
+ * 匿名函数是指声明函数时没有写名字的函数。
37
+ * 注意:即使是匿名函数,函数对象上的 name 属性也可能是有值的,因为 js解析器 会自动将 函数表达式函数变量的名字作为匿名函数的名字,如下:
38
+ * ```ts
39
+ * var funName = function(){};
40
+ * ```
41
+ * 其中的匿名函数对象的 name 属性的值会是 `funName`
42
+ *
43
+ * 如果 函数对象上的 name 属性的值为 `""`,函数一定是匿名函数。
44
+ */
45
+ export declare function isAnonymousFunction(fun: Function): boolean;
46
+ /**
47
+ * 表示任意的函数类型
48
+ */
49
+ export declare type AnyFunction = (...args: any) => any;
8
50
  /**
9
51
  * 判断目标是否是对象类型
10
52
  *
@@ -202,6 +244,38 @@ export declare type KeyOfContainsValue<Target, Value> = {
202
244
  export declare type KeyOfNonContainsValue<Target, Value> = {
203
245
  [K in keyof Target]: Value extends Target[K] ? never : K;
204
246
  }[keyof Target];
247
+ /**
248
+ * 从 T 中挑选出那些成员值为 Value 的类型的成员
249
+ */
250
+ export declare type PickValue<Target, Value> = {
251
+ [P in KeyOfValue<Target, Value>]: Target[P];
252
+ };
253
+ /**
254
+ * 从 Target 中挑选出那些成员值不是 Value 的类型的成员
255
+ */
256
+ export declare type PickNonValue<Target, Value> = {
257
+ [P in KeyOfNonValue<Target, Value>]: Target[P];
258
+ };
259
+ /**
260
+ * 从 Target 中挑选出那些成员值的类型包含 Value 类型的成员
261
+ */
262
+ export declare type PickContainsValue<Target, Value> = {
263
+ [P in KeyOfContainsValue<Target, Value>]: Target[P];
264
+ };
265
+ /**
266
+ * 从 Target 中挑选出那些成员值的类型不包含 Value 类型的成员
267
+ */
268
+ export declare type PickNonContainsValue<Target, Value> = {
269
+ [P in KeyOfNonContainsValue<Target, Value>]: Target[P];
270
+ };
271
+ /**
272
+ * 从 Target 中挑选出属性
273
+ */
274
+ export declare type PickProperty<Target> = PickNonValue<Target, AnyFunction>;
275
+ /**
276
+ * 从 Target 中挑选出方法
277
+ */
278
+ export declare type PickMethod<Target> = PickValue<Target, AnyFunction>;
205
279
  /**
206
280
  * 可将源类型 SourType 中的 类型 MatchType 替换为 新的类型 NewType
207
281
  */
@@ -400,55 +474,6 @@ export declare function extendTarget<C extends ClassType, E>(cla: C, ext: E & Th
400
474
  * @returns 可以用于 扩展目标 的便利函数
401
475
  */
402
476
  export declare function createExtendTarget<C extends ClassType>(cla: C): <E>(ext: E & ThisType<InstanceType<C> & E> & PrivateMemberOfExtend<C>) => ClassType<ConstructorParameters<C>, E & ThisType<InstanceType<C> & E>>;
403
- /**
404
- * 判断 code 是否是有校的 js 标识符
405
- * @param code - 标识符的字符串
406
- */
407
- export declare function isIdentifier(code: string): boolean;
408
- /**
409
- * 判断函数是否是箭头函数
410
- * @param fun - 被判断的函数
411
- */
412
- export declare function isArrowFunction(fun: Function): boolean;
413
- /**
414
- * 判断函数是否是 async 异步函数
415
- * @remarks
416
- * 异步函数 不包含 异步生成器函数 AsyncGeneratorFunction
417
- * @param fun - 被判断的函数
418
- */
419
- export declare function isAsyncFunction(fun: Function): boolean;
420
- /**
421
- * 判断函数是否是生成器函数
422
- *
423
- * @remarks
424
- * 生成器函数 不包含 异步生成器函数 AsyncGeneratorFunction
425
- * @param fun - 被判断的函数
426
- */
427
- export declare function isGeneratorFunction(fun: Function): boolean;
428
- /**
429
- * 判断函数是否是异步生成器函数
430
- * @param fun - 被判断的函数
431
- */
432
- export declare function isAsyncGeneratorFunction(fun: Function): boolean;
433
- /**
434
- * 判断是否是匿名函数
435
- *
436
- * @remarks
437
- * 判断函数在被定义时是否是通过匿名函数来定义的。
438
- * 匿名函数是指声明函数时没有写名字的函数。
439
- * 注意:即使是匿名函数,函数对象上的 name 属性也可能是有值的,因为 js解析器 会自动将 函数表达式函数变量的名字作为匿名函数的名字,如下:
440
- * ```ts
441
- * var funName = function(){};
442
- * ```
443
- * 其中的匿名函数对象的 name 属性的值会是 `funName`
444
- *
445
- * 如果 函数对象上的 name 属性的值为 `""`,函数一定是匿名函数。
446
- */
447
- export declare function isAnonymousFunction(fun: Function): boolean;
448
- /**
449
- * 表示任意的函数类型
450
- */
451
- export declare type AnyFunction = (...args: any) => any;
452
477
  /**
453
478
  * 获取对象的方法的某个参数的类型
454
479
  *
@@ -1,11 +1,3 @@
1
- /**
2
- * 处理类型相关的工具
3
- * @remarks
4
- * type-tls 封装了与类型相关的工具,比如获取数据的类型 或 类型名字、判断数据的类型 等
5
- *
6
- * @packageDocumentation
7
- */
8
-
9
1
  /**
10
2
  * 表示任意的函数类型
11
3
  */
@@ -568,6 +560,44 @@ export declare type Optional<T> = T | null | undefined;
568
560
  */
569
561
  export declare type OptionalBoolean = Optional<boolean>;
570
562
 
563
+ /**
564
+ * 从 Target 中挑选出那些成员值的类型包含 Value 类型的成员
565
+ */
566
+ export declare type PickContainsValue<Target, Value> = {
567
+ [P in KeyOfContainsValue<Target, Value>]: Target[P];
568
+ };
569
+
570
+ /**
571
+ * 从 Target 中挑选出方法
572
+ */
573
+ export declare type PickMethod<Target> = PickValue<Target, AnyFunction>;
574
+
575
+ /**
576
+ * 从 Target 中挑选出那些成员值的类型不包含 Value 类型的成员
577
+ */
578
+ export declare type PickNonContainsValue<Target, Value> = {
579
+ [P in KeyOfNonContainsValue<Target, Value>]: Target[P];
580
+ };
581
+
582
+ /**
583
+ * 从 Target 中挑选出那些成员值不是 Value 的类型的成员
584
+ */
585
+ export declare type PickNonValue<Target, Value> = {
586
+ [P in KeyOfNonValue<Target, Value>]: Target[P];
587
+ };
588
+
589
+ /**
590
+ * 从 Target 中挑选出属性
591
+ */
592
+ export declare type PickProperty<Target> = PickNonValue<Target, AnyFunction>;
593
+
594
+ /**
595
+ * 从 T 中挑选出那些成员值为 Value 的类型的成员
596
+ */
597
+ export declare type PickValue<Target, Value> = {
598
+ [P in KeyOfValue<Target, Value>]: Target[P];
599
+ };
600
+
571
601
  /**
572
602
  * 用于定义扩展选项中的私有成员
573
603
  */
package/doc/api/index.md CHANGED
@@ -8,5 +8,5 @@
8
8
 
9
9
  | Package | Description |
10
10
  | --- | --- |
11
- | [type-tls](./type-tls.md) | 处理类型相关的工具 |
11
+ | [type-tls](./type-tls.md) | |
12
12
 
@@ -4,12 +4,6 @@
4
4
 
5
5
  ## type-tls package
6
6
 
7
- 处理类型相关的工具
8
-
9
- ## Remarks
10
-
11
- type-tls 封装了与类型相关的工具,比如获取数据的类型 或 类型名字、判断数据的类型 等
12
-
13
7
  ## Enumerations
14
8
 
15
9
  | Enumeration | Description |
@@ -90,6 +84,12 @@ type-tls 封装了与类型相关的工具,比如获取数据的类型 或 类
90
84
  | [MethodReturnType](./type-tls.methodreturntype.md) | 获取对象的方法的返回的类型 |
91
85
  | [Optional](./type-tls.optional.md) | 将某个类型变为可选的类型 |
92
86
  | [OptionalBoolean](./type-tls.optionalboolean.md) | 可选的布尔类型 |
87
+ | [PickContainsValue](./type-tls.pickcontainsvalue.md) | 从 Target 中挑选出那些成员值的类型包含 Value 类型的成员 |
88
+ | [PickMethod](./type-tls.pickmethod.md) | 从 Target 中挑选出方法 |
89
+ | [PickNonContainsValue](./type-tls.picknoncontainsvalue.md) | 从 Target 中挑选出那些成员值的类型不包含 Value 类型的成员 |
90
+ | [PickNonValue](./type-tls.picknonvalue.md) | 从 Target 中挑选出那些成员值不是 Value 的类型的成员 |
91
+ | [PickProperty](./type-tls.pickproperty.md) | 从 Target 中挑选出属性 |
92
+ | [PickValue](./type-tls.pickvalue.md) | 从 T 中挑选出那些成员值为 Value 的类型的成员 |
93
93
  | [Replace](./type-tls.replace.md) | 可将源类型 SourType 中的 类型 MatchType 替换为 新的类型 NewType |
94
94
  | [ReplaceNull](./type-tls.replacenull.md) | 可将源类型 SourType 中的 null 替换为 新的类型 NewType |
95
95
  | [ReplaceUndefined](./type-tls.replaceundefined.md) | 可将源类型 SourType 中的 undefined 替换为 新的类型 NewType |
@@ -0,0 +1,17 @@
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; [PickContainsValue](./type-tls.pickcontainsvalue.md)
4
+
5
+ ## PickContainsValue type
6
+
7
+ 从 Target 中挑选出那些成员值的类型包含 Value 类型的成员
8
+
9
+ <b>Signature:</b>
10
+
11
+ ```typescript
12
+ export declare type PickContainsValue<Target, Value> = {
13
+ [P in KeyOfContainsValue<Target, Value>]: Target[P];
14
+ };
15
+ ```
16
+ <b>References:</b> [KeyOfContainsValue](./type-tls.keyofcontainsvalue.md)
17
+
@@ -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; [PickMethod](./type-tls.pickmethod.md)
4
+
5
+ ## PickMethod type
6
+
7
+ 从 Target 中挑选出方法
8
+
9
+ <b>Signature:</b>
10
+
11
+ ```typescript
12
+ export declare type PickMethod<Target> = PickValue<Target, AnyFunction>;
13
+ ```
14
+ <b>References:</b> [PickValue](./type-tls.pickvalue.md)<!-- -->, [AnyFunction](./type-tls.anyfunction.md)
15
+
@@ -0,0 +1,17 @@
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; [PickNonContainsValue](./type-tls.picknoncontainsvalue.md)
4
+
5
+ ## PickNonContainsValue type
6
+
7
+ 从 Target 中挑选出那些成员值的类型不包含 Value 类型的成员
8
+
9
+ <b>Signature:</b>
10
+
11
+ ```typescript
12
+ export declare type PickNonContainsValue<Target, Value> = {
13
+ [P in KeyOfNonContainsValue<Target, Value>]: Target[P];
14
+ };
15
+ ```
16
+ <b>References:</b> [KeyOfNonContainsValue](./type-tls.keyofnoncontainsvalue.md)
17
+
@@ -0,0 +1,17 @@
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; [PickNonValue](./type-tls.picknonvalue.md)
4
+
5
+ ## PickNonValue type
6
+
7
+ 从 Target 中挑选出那些成员值不是 Value 的类型的成员
8
+
9
+ <b>Signature:</b>
10
+
11
+ ```typescript
12
+ export declare type PickNonValue<Target, Value> = {
13
+ [P in KeyOfNonValue<Target, Value>]: Target[P];
14
+ };
15
+ ```
16
+ <b>References:</b> [KeyOfNonValue](./type-tls.keyofnonvalue.md)
17
+
@@ -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; [PickProperty](./type-tls.pickproperty.md)
4
+
5
+ ## PickProperty type
6
+
7
+ 从 Target 中挑选出属性
8
+
9
+ <b>Signature:</b>
10
+
11
+ ```typescript
12
+ export declare type PickProperty<Target> = PickNonValue<Target, AnyFunction>;
13
+ ```
14
+ <b>References:</b> [PickNonValue](./type-tls.picknonvalue.md)<!-- -->, [AnyFunction](./type-tls.anyfunction.md)
15
+
@@ -0,0 +1,17 @@
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; [PickValue](./type-tls.pickvalue.md)
4
+
5
+ ## PickValue type
6
+
7
+ 从 T 中挑选出那些成员值为 Value 的类型的成员
8
+
9
+ <b>Signature:</b>
10
+
11
+ ```typescript
12
+ export declare type PickValue<Target, Value> = {
13
+ [P in KeyOfValue<Target, Value>]: Target[P];
14
+ };
15
+ ```
16
+ <b>References:</b> [KeyOfValue](./type-tls.keyofvalue.md)
17
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "type-tls",
3
- "version": "2.5.0",
3
+ "version": "2.7.0",
4
4
  "description": "type-tls 封装了与类型相关的工具,比如:获取数据的类型 或 类型名字、判断数据的类型 等",
5
5
  "main": "dist/type-tls.umd.js",
6
6
  "module": "dist/type-tls.mjs",