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

Javascript 如何在TypeScript中为具有属性的函数声明类型?,javascript,typescript,Javascript,Typescript,我对TypeScript有点陌生,在TypeScript网站上阅读了一些文档,但我不确定自己是否理解正确。在这个场景中,我使用的包没有可用的TypeScript类型(prismic reactjs),因此我尝试自己声明类型,以便消除困扰项目的错误 因此,作为一个基本示例,我将如何为这样一个函数编写声明: constfoo=({bar})=>{ 返回杆; }; foo.baz=()=>“字符串”; 我能做到这一点: 声明模块“我的模块”{ 接口参数{ 酒吧:字符串; } 导出函数foo({bar

我对TypeScript有点陌生,在TypeScript网站上阅读了一些文档,但我不确定自己是否理解正确。在这个场景中,我使用的包没有可用的TypeScript类型(
prismic reactjs
),因此我尝试自己声明类型,以便消除困扰项目的错误

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

constfoo=({bar})=>{
返回杆;
};
foo.baz=()=>“字符串”;
我能做到这一点:

声明模块“我的模块”{
接口参数{
酒吧:字符串;
}
导出函数foo({bar}:fooParams):字符串;
}

但是我不知道如何包含
baz
属性。

您可以使用


谢谢你的帮助。我认为这将是一个学习如何为现有JavaScript模块编写打字的好机会(而且我不能运行
tsc
而不出错,因为包
prismic reactjs
没有打字)。但是,这看起来不像类型定义(例如,我正在尝试编写
index.d.ts
)。如果我错了,请纠正我!基本上,函数存在,我无法更改它,我只想编写类型定义,这样TypeScript就不会抱怨“找不到模块'prismic reactjs'的声明文件”。这种设计模式(也有属性的函数)非常常见,尤其是在重新发现的年代(web2.0)当javascript开始被视为一种严肃的语言时,它就被称为javascript。许多库(如jQuery)的主对象容器都是一个函数(在jQuery的例子中,它既是一个常规函数又是一个构造函数),并附带属性和方法。因此,很多遗留代码都是这样编写的,甚至一些现代代码也会继续由那一代人(比如我自己)以这种方式编写@Griffen抱歉,我误解了你的问题,请查看我的最新答案
declare const foo: {
  baz: () => string
} & (({ bar }: {bar: string}) =>  string)