如何在TypeScript中使用属性声明函数的类型?

时间:2020-05-08 03:53:22

标签: javascript typescript

我是TypeScript的新手,可以在TypeScript网站上阅读一些文档,但是不确定我是否理解正确。在这种情况下,我使用的包没有可用的TypeScript类型(prismic-reactjs),所以我试图自己声明类型,以便摆脱因项目困扰的错误。

因此,作为一个基本示例,我将如何编写此类函数的声明:

const foo = ({ bar }) =>  {
    return bar;
};

foo.baz = () => "string";

我可以做到这一点:

declare module "my-module" {
  interface fooParams {
    bar: string;
  }

  export function foo({ bar }: fooParams): string;
}

但是我不知道如何添加baz属性。

1 个答案:

答案 0 :(得分:1)

您可以使用intersection type来实现。

declare const foo: {
  baz: () => string
} & (({ bar }: {bar: string}) =>  string)