Skip to content

Commit 6ccff8c

Browse files
sealdayclaude
andcommitted
fix(types): resolve all TypeScript errors and add CI type checking
- Add missing property declarations to ClipboardManager, SelectionManager, StyleManager - Add property declarations to NoneBordersStrategy class - Fix FormulaMap type to match Formula interface - Fix test files: DrawBox usage, line method call, type assertions - Add type-check script to package.json - Add Type Check step to CI workflow 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 42086a8 commit 6ccff8c

12 files changed

Lines changed: 25 additions & 11 deletions

File tree

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ jobs:
2525
- name: Install dependencies
2626
run: pnpm install
2727

28+
- name: Type Check
29+
run: pnpm type-check
30+
2831
- name: Build
2932
run: pnpm build
3033

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"build": "pnpm -r build",
88
"dev": "pnpm -C packages/demo dev",
99
"test": "pnpm -C packages/sheet test",
10+
"type-check": "tsc --noEmit",
1011
"format": "biome check --write .",
1112
"check": "biome check .",
1213
"doc:build": "rspress build",

packages/sheet/src/sheet/core/cell.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,9 +225,9 @@ const evalSuffixExpr = (
225225
stack.push(ret);
226226
} else if (Array.isArray(expr)) {
227227
const [formula, len] = expr;
228-
const params = [];
228+
const params: (string | number | boolean)[] = [];
229229
for (let j = 0; j < len; j += 1) {
230-
params.push(stack.pop());
230+
params.push(stack.pop() as string | number | boolean);
231231
}
232232
stack.push(formulaMap[formula].render(params.reverse()));
233233
} else {

packages/sheet/src/sheet/core/managers/ClipboardManager.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import type Selector from '../selector';
1818
export class ClipboardManager {
1919
private clipboard: Clipboard;
2020
private rows: Rows;
21+
private merges: Merges;
2122
private selector: Selector;
2223
private getCell: (ri: number, ci: number) => Cell | null;
2324
private setCellText: (

packages/sheet/src/sheet/core/managers/SelectionManager.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ import type Selector from '../selector';
1919
export class SelectionManager {
2020
private rows: Rows;
2121
private cols: Cols;
22+
private merges: Merges;
2223
private selector: Selector;
24+
private scroll: Scroll;
2325
private exceptRowSet: Set<number>;
2426
private unsortedRowMap: Map<number, number>;
2527
private freezeTotalWidth: () => number;

packages/sheet/src/sheet/core/managers/StyleManager.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ import type Selector from '../selector';
1616
export class StyleManager {
1717
private styles: CellStyle[];
1818
private rows: Rows;
19+
private merges: Merges;
1920
private selector: Selector;
2021
private defaultStyleGetter: () => CellStyle;
22+
private onStyleChange: () => void;
2123

2224
constructor(
2325
styles: CellStyle[],

packages/sheet/src/sheet/core/strategies/BorderStyleStrategy.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,9 @@ export class VerticalBordersStrategy implements BorderStyleStrategy {
271271
* Remove all borders
272272
*/
273273
export class NoneBordersStrategy implements BorderStyleStrategy {
274+
private styles: unknown[];
275+
private addStyle: (style: unknown) => number;
276+
274277
constructor(styles: unknown[], addStyle: (style: unknown) => number) {
275278
this.styles = styles;
276279
this.addStyle = addStyle;

packages/sheet/src/sheet/types.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,9 @@ export type EventListener<T = unknown> = (event: T) => void;
287287
*/
288288
export interface FormulaMap {
289289
[key: string]: {
290-
render: (params: unknown[]) => unknown;
290+
render: (
291+
params: (string | number | boolean)[],
292+
) => string | number | boolean;
291293
};
292294
}
293295

packages/sheet/tests/canvas/draw.test.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ describe('Canvas Draw Utils', () => {
7474

7575
it('应该能够绘制矩形', () => {
7676
const draw = new Draw(canvas, 100, 100);
77-
draw.rect({ x: 0, y: 0, width: 100, height: 50 }, () => {});
77+
draw.rect(new DrawBox(0, 0, 100, 50), () => {});
7878

7979
// If no exception is thrown, the test passes
8080
expect(draw).toBeInstanceOf(Draw);
@@ -99,10 +99,7 @@ describe('Canvas Draw Utils', () => {
9999
it('应该能够绘制线条', () => {
100100
const draw = new Draw(canvas, 100, 100);
101101

102-
draw.line([
103-
[0, 0],
104-
[100, 100],
105-
]);
102+
draw.line([0, 0], [100, 100]);
106103

107104
// If no exception is thrown, the test passes
108105
expect(draw).toBeInstanceOf(Draw);

packages/sheet/tests/core/helper.test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ describe('helper', () => {
2222
});
2323
it("should return { a: { a1: 'a2' }, b: 'b' } where the value is {a: {a1: 'a1'}, b: 'b'}, {a: {a1: 'b'}}", () => {
2424
const obj = { a: { a1: 'a1' }, b: 'b' };
25-
const merge = helper.merge(obj, { a: { a1: 'a2' } });
25+
const merge = helper.merge(obj, { a: { a1: 'a2' } }) as {
26+
a: { a1: string };
27+
b: string;
28+
};
2629
assert.equal(obj.a.a1, 'a1');
2730
assert.equal(merge.a.a1, 'a2');
2831
assert.equal(merge.b, 'b');

0 commit comments

Comments
 (0)