TypeScript 以空函数作为参数?

Soc*_*tes 5 typescript

我有一段代码我很难理解。我是 TypeScript 新手。

registerCommands(registry: CommandRegistry): void {
    registry.registerCommand(FensterCommands.HELLOWORLD);
    registry.registerHandler(FensterCommands.HELLOWORLD.id, {
        isEnabled: () => true,
        execute: () => this.messageService.info('Hello World!')
    });
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮我理解上面的代码吗?我不明白的是registry.registerHandler(...). 这个位于大括号内的参数值是什么类型{...}?第一个参数的名称是isEnabled,对吗?而它的价值又是什么呢?是()还是true?空函数有什么作用()意思?整行是否() => true以比较结尾true/false

这或多或少是正确的吗?

cod*_*teq 7

registry.registerHandler的第二个参数是什么类型,取决于函数的定义,它是一个对象,但您提供的信息不够清楚 - 它可能是一个接口,甚至是任何...

尽管如此:

   isEnabled: () => true,
Run Code Online (Sandbox Code Playgroud)

可能将isEnabled设置为不带参数的函数,该函数返回布尔值

  execute: () => this.messageService.info('Hello World!')
Run Code Online (Sandbox Code Playgroud)

可能将执行设置为不带参数的函数,该函数将返回this.messageService.info('Hello World!')返回的类型。

这两个函数都是用ES6 箭头函数声明的

也可以写成:

(假设this.messageService.info('Hello World!')将不返回任何内容/void)

{
       isEnabled: function() { return true; },
       execute: function() { return this.messageService.info('Hello World!'); }
}
Run Code Online (Sandbox Code Playgroud)