如何在TypeScript中声明具有属性的函数的类型?

u4dcyp6a  于 2023-04-22  发布在  TypeScript
关注(0)|答案(1)|浏览(146)

我在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属性呢?

hgc7kmma

hgc7kmma1#

您可以使用交叉点类型来实现这一点。

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

相关问题