Node.js 声明导出函数的JS依赖项的.d.ts文件
我在我的typescript项目中使用了一个依赖项()。这个依赖项没有@types定义,因此,到目前为止,我一直在使用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
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';
声明文件基本上与您描述的一样: