【问题标题】:Typescript function returntype打字稿函数返回类型
【发布时间】:2022-01-12 07:03:17
【问题描述】:

我在 af 模块中有这个函数声明:

declare module 'picoapp' {
  export function component(node?: HTMLElement): void
}

然后在 .ts 文件中像这样使用它

export default component((node: HTMLElement) => {
   // All sorts of TS/JS here
})

但是 VSCode 给了我这个警告:Argument of type '(node: HTMLElement) => void' is not assignable to parameter of type 'HTMLElement'

那么函数的返回类型应该是什么? 我没有返回值,只是使用节点作为参考。

【问题讨论】:

  • 与返回类型无关。问题是您的类型声明说component 需要一个HTMLElement,而您却给了它一个函数component 应该期待回调吗?如果是这样,您必须修改它的类型。现在的回调应该只是传入的 HTML 元素吗?你必须修改代码。
  • ...哇,我一定在睡觉...谢谢^^ 如何编写引用回调,接受 HTMLElement 作为参数?
  • (node: HTMLElement) => void 假设回调不需要返回任何内容。如果是,那么void 是预期的返回类型。例如,如果您希望它采用 HTMLElement 并返回 truefalse,则为 (node: HTMLElement) => boolean

标签: typescript typescript-typings typescript-module-resolution


【解决方案1】:

如果你的组件函数的使用是正确的,类型应该声明如下,其中回调可以是你喜欢的任何名称。

declare module 'picoapp' {
    export function component(callback:(node?: HTMLElement)=>void): void
}

【讨论】:

    猜你喜欢
    • 2015-08-10
    • 2021-09-17
    • 1970-01-01
    • 2022-07-07
    • 2019-07-06
    • 2020-05-09
    • 2021-06-17
    • 2021-12-17
    • 2020-06-29
    相关资源
    最近更新 更多