gpt4 book ai didi

带有空函数作为参数的 TypeScript?

转载 作者:行者123 更新时间:2023-12-05 00:48:34 28 4
gpt4 key购买 nike

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

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

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

这或多或少正确吗?

最佳答案

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

尽管如此:

   isEnabled: () => true,

可能将 isEnabled 设置为不带参数且返回 bool 值的函数

  execute: () => this.messageService.info('Hello World!')

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

这两个函数都用 ES6 Arrow functions 声明

也可以写成:

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

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

关于带有空函数作为参数的 TypeScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49813080/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com