From edea4ebeae3ec64fde4b692666b746ef52464a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E7=86=B1?= Date: Fri, 11 Jul 2025 11:36:20 +0800 Subject: [PATCH] fix(dts): simplify interface declarations and improve method overrides in event and range modules (#5516) --- packages/sheets-note/src/facade/f-event.ts | 7 ++----- packages/sheets-note/src/facade/f-range.ts | 17 +++++++++------- packages/sheets-note/src/facade/f-univer.ts | 1 + .../sheets-note/src/facade/f-worksheet.ts | 13 +++++++----- .../sheets-table/src/facade/f-worksheet.ts | 20 +++++++++++++++++-- 5 files changed, 39 insertions(+), 19 deletions(-) diff --git a/packages/sheets-note/src/facade/f-event.ts b/packages/sheets-note/src/facade/f-event.ts index da27fef1a0..8e724591d0 100644 --- a/packages/sheets-note/src/facade/f-event.ts +++ b/packages/sheets-note/src/facade/f-event.ts @@ -306,9 +306,6 @@ export interface ISheetNoteEventConfig { FEventName.extend(FSheetNoteEvent); declare module '@univerjs/core/facade' { // eslint-disable-next-line ts/naming-convention - interface FEventName extends ISheetNoteEvent { - } - - interface IEventParamConfig extends ISheetNoteEventConfig { - } + interface FEventName extends ISheetNoteEvent {} + interface IEventParamConfig extends ISheetNoteEventConfig {} } diff --git a/packages/sheets-note/src/facade/f-range.ts b/packages/sheets-note/src/facade/f-range.ts index 9e661bb88c..8a6b760bb3 100644 --- a/packages/sheets-note/src/facade/f-range.ts +++ b/packages/sheets-note/src/facade/f-range.ts @@ -19,6 +19,9 @@ import type { ISheetNote } from '@univerjs/sheets-note'; import { RemoveNoteMutation, SheetsNoteModel, UpdateNoteMutation } from '@univerjs/sheets-note'; import { FRange } from '@univerjs/sheets/facade'; +/** + * @ignore + */ export interface IFSheetsNoteRange { /** * Get the annotation of the top-left cell in the range @@ -71,8 +74,8 @@ export interface IFSheetsNoteRange { deleteNote(): FRange; } -export class FSheetsNoteRange extends FRange implements IFSheetsNoteRange { - createOrUpdateNote(note: ISheetNote): FRange { +export class FSheetsNoteRangeMixin extends FRange implements IFSheetsNoteRange { + override createOrUpdateNote(note: ISheetNote): FRange { this._commandService.syncExecuteCommand( UpdateNoteMutation.id, { @@ -87,7 +90,7 @@ export class FSheetsNoteRange extends FRange implements IFSheetsNoteRange { return this; } - deleteNote(): FRange { + override deleteNote(): FRange { this._commandService.syncExecuteCommand( RemoveNoteMutation.id, { @@ -101,14 +104,14 @@ export class FSheetsNoteRange extends FRange implements IFSheetsNoteRange { return this; } - getNote(): Nullable { + override getNote(): Nullable { const model = this._injector.get(SheetsNoteModel); return model.getNote(this.getUnitId(), this.getSheetId(), this.getRow(), this.getColumn()); } } +FRange.extend(FSheetsNoteRangeMixin); declare module '@univerjs/sheets/facade' { - interface IRange extends FSheetsNoteRange { } + // eslint-disable-next-line ts/naming-convention + interface FRange extends IFSheetsNoteRange { } } - -FRange.extend(FSheetsNoteRange); diff --git a/packages/sheets-note/src/facade/f-univer.ts b/packages/sheets-note/src/facade/f-univer.ts index 8b11e4f7cd..0491eb0a79 100644 --- a/packages/sheets-note/src/facade/f-univer.ts +++ b/packages/sheets-note/src/facade/f-univer.ts @@ -28,6 +28,7 @@ export interface IFUniverSheetNoteMixin { } export class FUniverSheetNoteMixin extends FUniver implements IFUniverSheetNoteMixin { + // eslint-disable-next-line max-lines-per-function override _initialize(injector: Injector): void { this.registerEventHandler( this.Event.SheetNoteAdd, diff --git a/packages/sheets-note/src/facade/f-worksheet.ts b/packages/sheets-note/src/facade/f-worksheet.ts index 92898e3519..3a6640e836 100644 --- a/packages/sheets-note/src/facade/f-worksheet.ts +++ b/packages/sheets-note/src/facade/f-worksheet.ts @@ -23,6 +23,9 @@ export interface ISheetNoteInfo extends ISheetNote { col: number; } +/** + * @ignore + */ export interface IFSheetsNoteWorksheet { /** * Get all annotations in the worksheet @@ -44,7 +47,7 @@ export interface IFSheetsNoteWorksheet { } export class FSheetsNoteWorksheet extends FWorksheet implements IFSheetsNoteWorksheet { - getNotes(): ISheetNoteInfo[] { + override getNotes(): ISheetNoteInfo[] { const model = this._injector.get(SheetsNoteModel); const notes = model.getSheetNotes(this.getWorkbook().getUnitId(), this.getSheetId()); const arr: ISheetNoteInfo[] = []; @@ -61,8 +64,8 @@ export class FSheetsNoteWorksheet extends FWorksheet implements IFSheetsNoteWork } } -declare module '@univerjs/sheets/facade' { - interface IWorksheet extends FSheetsNoteWorksheet { } -} - FWorksheet.extend(FSheetsNoteWorksheet); +declare module '@univerjs/sheets/facade' { + // eslint-disable-next-line ts/naming-convention + interface FWorksheet extends IFSheetsNoteWorksheet { } +} diff --git a/packages/sheets-table/src/facade/f-worksheet.ts b/packages/sheets-table/src/facade/f-worksheet.ts index cb84e8a172..59c1e80aa6 100644 --- a/packages/sheets-table/src/facade/f-worksheet.ts +++ b/packages/sheets-table/src/facade/f-worksheet.ts @@ -15,10 +15,26 @@ */ import type { IRangeThemeStyleJSON } from '@univerjs/sheets'; -import type { IAddSheetTableCommandParams, IDeleteSheetTableParams, ISetSheetTableCommandParams, ISetSheetTableParams, ITableFilterItem, ITableInfoWithUnitId, ITableOptions, ITableRange } from '@univerjs/sheets-table'; +import type { + IAddSheetTableCommandParams, + IDeleteSheetTableParams, + ISetSheetTableCommandParams, + ISetSheetTableParams, + ITableFilterItem, + ITableInfoWithUnitId, + ITableOptions, + ITableRange, +} from '@univerjs/sheets-table'; import { cellToRange, Rectangle } from '@univerjs/core'; import { RangeThemeStyle } from '@univerjs/sheets'; -import { AddSheetTableCommand, AddTableThemeCommand, DeleteSheetTableCommand, SetSheetTableCommand, SetSheetTableFilterCommand, SheetTableService } from '@univerjs/sheets-table'; +import { + AddSheetTableCommand, + AddTableThemeCommand, + DeleteSheetTableCommand, + SetSheetTableCommand, + SetSheetTableFilterCommand, + SheetTableService, +} from '@univerjs/sheets-table'; import { FWorksheet } from '@univerjs/sheets/facade'; /**