@univerjscoreinterfacesIcommand

@univerjs/core v0.5.0-beta.1Docs


Interface: ICommand<P, R>

In Univer, all data modifications need to be executed through commands. The command-based approach can better track changes in values, implement functions such as undo, redo, and collaborative editing, handle complex associated logic between functions, etc.

All commands should implements this interface or related IMutation or IOperation interface, and should be registered in the ICommandService.

Extended by

Type Parameters

Type ParameterDefault type
P extends objectobject
Rboolean

Properties

PropertyModifierTypeDescriptionDefined in
idreadonlystringIdentifier of the command. It should be unique in the application unless it is a IMultiCommand. Its pattern should be like <namespace>.<type>.<command-name>. Example { id: 'sheet.command.set-selection-frozen' }packages/api/tmp/univer-pro/submodules/univer/packages/core/src/services/command/command.service.ts:66
typereadonlyCommandTypeThe type of the command.packages/api/tmp/univer-pro/submodules/univer/packages/core/src/services/command/command.service.ts:70

Methods

handler()

handler(
   accessor, 
   params?, 
options?): R | Promise<R>

The handler of the command.

Parameters

ParameterTypeDescription
accessorIAccessorThe accessor to the dependency injection container.
params?PParams of the command. Params should be serializable.
options?IExecutionOptionsOptions of the command.

Returns

R | Promise<R>

The result of the command. By default it should be a boolean value which indicates the command is executed successfully or not.

Defined in

packages/api/tmp/univer-pro/submodules/univer/packages/core/src/services/command/command.service.ts:79