我在我的打字稿项目中使用依赖项(https://www.npmjs.com/package/is-class)。该依赖项没有@types定义,因此,直到现在,我一直在使用带有declare module 'is-class';
的自定义.d.ts文件来使导入工作。但是,我想向此依赖项中添加类型。
is类基本上导出单个函数,该函数接收1个参数并返回布尔值。我一直试图将其添加到我的.d.ts文件中,但是到目前为止,我尝试过的所有操作都会引发一个或另一个错误,到目前为止,我的最佳猜测是:
declare module 'is-class' {
function isClass(a: any): boolean;
export = isClass;
}
在我的ts代码中:
import * as isClass from 'is-class';
// ...
const foo = isClass(bar);
这引发了消息:This module can only be referenced with ECMAScript imports/exports by turning on the 'esModuleInterop' flag and referencing its default export.
,但我不确定实现此目的的最佳方法是什么。
答案 0 :(得分:1)
我刚遇到类似的问题。
首先,我更新了tsconfig.json以包含几个新选项:
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
}
}
(这不是整个配置文件。我只是排除了以前已经存在的选项。)
我将导入行更改为以下内容:
import isClass from 'is-class';
声明文件基本上像您描述的那样:
declare module 'is-class' {
function isClass(a: any): boolean;
export = isClass;
}