gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 21:51:17 25 4
gpt4 key购买 nike

我在我的 typescript 项目中使用依赖项( https://www.npmjs.com/package/is-class )。此依赖项没有 @types 定义,因此,到目前为止,我一直在使用带有 declare module 'is-class'; 的自定义 .d.ts 文件来使导入工作。但是,我想向此依赖项添加类型。

is-class 基本上导出一个接收 1 个参数并返回 bool 值的函数。我一直在尝试将其添加到我的 .d.ts 文件中,但到目前为止我尝试过的所有操作都会引发一个或另一个错误,到目前为止我最好的猜测是:

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';

声明文件看起来基本上像您所描述的那样:

declare module 'is-class' {
function isClass(a: any): boolean;
export = isClass;
}

关于node.js - 声明导出函数的 JS 依赖项的 .d.ts 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55560166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com