Node.js 声明导出函数的JS依赖项的.d.ts文件

Node.js 声明导出函数的JS依赖项的.d.ts文件,node.js,typescript,Node.js,Typescript,我在我的typescript项目中使用了一个依赖项()。这个依赖项没有@types定义,因此,到目前为止,我一直在使用declare module'is class'处理一个自定义的.d.ts文件以使导入工作正常。但是,我想向这个依赖项添加类型 is类基本上导出一个函数,该函数接收1个参数并返回布尔值。我一直在尝试将此添加到.d.ts文件中,但迄今为止我尝试的所有操作都会抛出一个或另一个错误,我迄今为止的最佳猜测是: declare module 'is-class' { functio

我在我的typescript项目中使用了一个依赖项()。这个依赖项没有@types定义,因此,到目前为止,我一直在使用
declare module'is class'处理一个自定义的.d.ts文件以使导入工作正常。但是,我想向这个依赖项添加类型

is类基本上导出一个函数,该函数接收1个参数并返回布尔值。我一直在尝试将此添加到.d.ts文件中,但迄今为止我尝试的所有操作都会抛出一个或另一个错误,我迄今为止的最佳猜测是:

declare module 'is-class' {
    function isClass(a: any): boolean;
    export = isClass;
}
declare module 'is-class' {
    function isClass(a: any): boolean;
    export = isClass;
}
在我的ts代码中:

import * as isClass from 'is-class';
// ...
const foo = isClass(bar);

这会抛出一条消息:
只有打开“esModuleInterop”标志并引用其默认导出,才能使用ECMAScript导入/导出引用此模块。
但我不确定最好的方法是什么。

我刚刚遇到了类似的问题

首先,我更新了tsconfig.json以包含两个新选项:

{
    "compilerOptions": {
        "allowSyntheticDefaultImports": true,
        "esModuleInterop": true,
    }
}
(这不是整个配置文件。我只是排除了以前已经存在的选项。)

我将导入行更改为如下内容:

import isClass from 'is-class';
声明文件基本上与您描述的一样: