jc-structure 0.1.23 → 0.2.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/index.d.ts CHANGED
@@ -553,7 +553,7 @@ declare module "jc-structure" {
553
553
  /**
554
554
  * ### 缓存类
555
555
  */
556
- export class MemoizeMap {
556
+ interface MemoizeMap {
557
557
  /**
558
558
  * 根据键的类型,判断缓存在 Map 还是 WeakMap中
559
559
  * @param key 键值
@@ -571,11 +571,19 @@ declare module "jc-structure" {
571
571
  */
572
572
  has(key: unknown): boolean;
573
573
  }
574
+ interface MemoizeMapConstructor {
575
+ new (): MemoizeMap;
576
+ readonly prototype: MemoizeMap;
577
+ }
578
+ declare var MemoizeMap: MemoizeMapConstructor;
574
579
 
580
+ interface Num extends Number {}
575
581
  /**
576
582
  * ### 数字类
577
583
  */
578
584
  interface NumConstructor {
585
+ new (value?: any): Num;
586
+ readonly prototype: Num;
579
587
  /**
580
588
  * #### 判断是否是有效的正整数
581
589
  * @param n A numeric value
@@ -816,7 +824,10 @@ declare module "jc-structure" {
816
824
  }
817
825
  declare var BitPer: BitPerConstructor;
818
826
 
827
+ interface Str extends String {}
819
828
  interface StrConstructor {
829
+ new (value?: string): Str;
830
+ readonly prototype: Str;
820
831
  /**
821
832
  * #### 根据字符串频率统计
822
833
  * @param s
package/package.json CHANGED
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "name": "jc-structure",
3
3
  "private": false,
4
- "version": "0.1.23",
4
+ "version": "0.2.0",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist",
8
8
  "index.d.ts",
9
- "types",
10
9
  "README.md",
11
10
  "LICENSE"
12
11
  ],
@@ -1,50 +0,0 @@
1
- /**
2
- * #### 字典接口
3
- */
4
- interface IDictionary<K, V> extends Structure {
5
- /**
6
- * #### 设置键值对
7
- * @param key 键
8
- * @param value 值
9
- */
10
- set(key: K, value: V): void;
11
-
12
- /**
13
- * #### 删除键值对
14
- * @param key 键
15
- */
16
- remove(key: K): ValuePair<K, V> | undefined;
17
-
18
- /**
19
- * #### 判断键是否存在
20
- * @param key 键
21
- */
22
- has(key: K): boolean;
23
-
24
- /**
25
- * #### 获取键值对
26
- * @param key 键
27
- */
28
- get(key: K): ValuePair<K, V> | undefined;
29
-
30
- /**
31
- * #### 获取键数组
32
- */
33
- keys(): Array<K>;
34
-
35
- /**
36
- * #### 获取值数组
37
- */
38
- values(): Array<V>;
39
-
40
- /**
41
- * #### 获取键值对数组
42
- */
43
- keyValues(): Array<[K, V]>;
44
-
45
- /**
46
- * 遍历键值对
47
- * @param callbackFunc 回调函数
48
- */
49
- forEach(callbackFunc: (key: K, value: V) => boolean | void): void;
50
- }
package/types/global.d.ts DELETED
@@ -1,75 +0,0 @@
1
- interface Structure {
2
- /**
3
- * 判断数据结构是否为空
4
- */
5
- isEmpty(): boolean;
6
- /**
7
- * 数据结构元素长度
8
- */
9
- size(): number;
10
- /**
11
- * 清除数据结构元素
12
- */
13
- clear(): void;
14
- /**
15
- * 重写 toString 方法
16
- */
17
- toString(): string;
18
- }
19
-
20
- type CompareResult = -1 | 0 | 1;
21
-
22
- /**
23
- * #### 比较函数接口
24
- */
25
- interface CompareFn<T> {
26
- (a: T, b: T): CompareResult;
27
- }
28
-
29
- /**
30
- * #### 对象接口,用于存储数据结构元素,值类型默认为 any
31
- */
32
- interface Obj<V = any> {
33
- [key: string]: V;
34
- }
35
-
36
- interface RegExpConstructor {
37
- /**
38
- * #### 转义正则表达式中的特殊字符
39
- * @param str 字符串
40
- */
41
- escape(str: string): string;
42
- }
43
-
44
- interface Element {
45
- /**
46
- * #### 获取最深元素集合中的第一个元素
47
- */
48
- readonly firstElement: Element | null;
49
- /**
50
- * #### 获取最深元素集合中的最后一个元素
51
- */
52
- readonly lastElement: Element | null;
53
- /**
54
- * #### 最祖先的匹配元素
55
- * @param this element
56
- * @param selector 选择器
57
- */
58
- farthest<E extends Element = Element>(this: E, selector: string): E | null;
59
- }
60
-
61
- interface Text {
62
- /**
63
- * #### 将文本节点包裹在指定标签中
64
- * @param this Text 该文本节点
65
- * @param selector 要包裹的元素标签,默认为:'strong'
66
- * @param text 要包裹的文本,默认为:''
67
- */
68
- surround(this: Text, selector?: string, text?: string): HTMLElement | null;
69
- }
70
-
71
- interface Array<T> {
72
- groupBy<K extends string | number | symbol>(
73
- generateKey: string | ((item: T, index: number, arr: T[]) => K)
74
- ): Record<K, T[]>;
75
- }
package/types/graph.d.ts DELETED
@@ -1,24 +0,0 @@
1
- /**
2
- * #### 图接口
3
- */
4
- interface IGraph<T> {
5
- /**
6
- * #### 添加顶点的方法
7
- * @param v 顶点
8
- */
9
- addVertex(v: T): void;
10
- /**
11
- * #### 添加边的方法
12
- * @param v 顶点
13
- * @param w
14
- */
15
- addEdge(v: T, w: T): void;
16
- /**
17
- * #### 获取顶点集合的方法
18
- */
19
- getVertices(): Array<T>;
20
- /**
21
- * #### 获取邻接表的方法
22
- */
23
- getAdjacencyList(): IDictionary<T, Array<T>>;
24
- }
package/types/heap.d.ts DELETED
@@ -1,21 +0,0 @@
1
- /**
2
- * #### 堆
3
- */
4
- interface IHeap<T> extends Structure {
5
- /**
6
- * #### 插入一个值,返回一个布尔值
7
- * @param value 要插入的值
8
- */
9
- insert(value: T): boolean;
10
-
11
- /**
12
- * #### 移除最小值或最大值,返回该值
13
- */
14
- extract(): T | undefined;
15
-
16
- /**
17
- * 查找一个值
18
- * @param value 要查找的值
19
- */
20
- find(): T | undefined;
21
- }
@@ -1,47 +0,0 @@
1
- /**
2
- * #### 链表接口
3
- */
4
- interface ILinkedList<T> extends Structure {
5
- /**
6
- * #### 向链表中添加元素
7
- * @param element 要添加的元素
8
- */
9
- push(element: T): void;
10
-
11
- /**
12
- * #### 在指定位置插入元素
13
- * @param element 要插入的元素
14
- * @param index 插入的位置索引
15
- */
16
- insert(element: T, index: number): void;
17
-
18
- /**
19
- * #### 获取指定位置的节点
20
- * @param index 指定位置索引
21
- */
22
- getElementAt(index: number): Node<T> | undefined;
23
-
24
- /**
25
- * #### 获取指定位置的值
26
- * @param index 指定位置索引
27
- */
28
- getValueAt(index: number): T | undefined;
29
-
30
- /**
31
- * #### 移除指定位置的元素
32
- * @param index 指定位置索引
33
- */
34
- removeAt(index: number): T | undefined;
35
-
36
- /**
37
- * #### 移除指定元素
38
- * @param element 指定元素
39
- */
40
- remove(element: T): T | undefined;
41
-
42
- /**
43
- * #### 获取指定元素的索引
44
- * @param element 指定元素
45
- */
46
- indexOf(element: T): number | undefined;
47
- }
package/types/queue.d.ts DELETED
@@ -1,20 +0,0 @@
1
- /**
2
- * #### 队列接口
3
- */
4
- interface IQueue<T> extends Structure {
5
- /**
6
- * #### 移除队列头部元素并返回该元素
7
- */
8
- dequeue(): T | undefined;
9
-
10
- /**
11
- * #### 向队列末尾添加元素
12
- * @param args 要添加的元素
13
- */
14
- enqueue(...args: (T | T[])[]): this;
15
-
16
- /**
17
- * #### 返回队列头部元素,但不移除
18
- */
19
- front(): T | undefined;
20
- }
package/types/shape.d.ts DELETED
@@ -1,11 +0,0 @@
1
- interface Point {
2
- x: number;
3
- y: number;
4
- }
5
- type Coord = Point;
6
- type Coord3D = Point & { z: number };
7
-
8
- interface Rect extends Point {
9
- w: number;
10
- h: number;
11
- }
package/types/stack.d.ts DELETED
@@ -1,24 +0,0 @@
1
- interface StructureObj<T> {
2
- [key: number]: T;
3
- }
4
-
5
- /**
6
- * #### 栈接口
7
- */
8
- interface IStack<T> extends Structure {
9
- /**
10
- * #### 移除栈顶元素并返回该元素
11
- */
12
- pop(): T | undefined;
13
-
14
- /**
15
- * #### 添加一个或多个元素
16
- * @param items
17
- */
18
- push(...items: (T | T[])[]): this;
19
-
20
- /**
21
- * #### 返回栈顶元素,但不移除
22
- */
23
- peek(): T | undefined;
24
- }
package/types/vector.d.ts DELETED
@@ -1,20 +0,0 @@
1
- interface Vector {
2
- get dimension(): number;
3
- get norm(): number;
4
- getItem(index: number): number;
5
- normalize(): Vector;
6
- add(vector: Vector): Vector;
7
- sub(vector: Vector): Vector;
8
- mul(scalar: number): Vector;
9
- dot(vector: Vector): number;
10
- pos(): Vector;
11
- neg(): Vector;
12
- }
13
-
14
- interface VectorConstructor {
15
- new (...args: number[]): Vector;
16
- readonly prototype: Vector;
17
- zero(dimension: number): Vector;
18
- }
19
-
20
- declare var Vector: VectorConstructor;