gpt4 book ai didi

node.js - typescript 错误 : This expression is not callable. 类型 'typeof import("koa-session")' 没有调用签名

转载 作者:行者123 更新时间:2023-12-03 12:13:30 24 4
gpt4 key购买 nike

部分解决:

在 github 上有一个老问题,这里对这个问题进行了一些描述。当您在全局范围内声明一个模块时,它会重写整个导出模块的类型。当您在模块中声明模块时,它会合并。为什么?我不知道

https://github.com/microsoft/TypeScript/issues/17736#issuecomment-344353174

我想通过接口(interface)合并来扩展第三方模块的类型。一切正常,但是当我发表评论时export {};类型.d.ts 我遇到以下错误:

This expression is not callable. Type 'typeof import("koa-session")' has no call signatures



你能解释一下为什么会这样吗?

您可以在此处检查工作代码:
https://codesandbox.io/s/typescript-node-nocfq?file=/src/types.d.ts

最佳答案

类似问题已在 TypeScript github 上得到解决。 .不幸的是,我现在知道任何其他可以描述它的文档页面。

注释掉 export {}types.d.ts将文件从模块转换为脚本。来自 TypeScript handbook :

In TypeScript, just as in ECMAScript 2015, any file containing a top-level import or export is considered a module. Conversely, a file without any top-level import or export declarations is treated as a script whose contents are available in the global scope (and therefore to modules as well).



由于没有 export 语句(也没有 import 语句)的文件不是一个模块,而是一个脚本,它没有关于任何模块的信息,并且确实会忽略存在“koa-session”定义的事实。

您可以在您的沙盒中尝试此操作 - 添加任何顶级 importexporttypes.d.ts (它可以完全不用)将修复 This expression is not callable错误。

关于node.js - typescript 错误 : This expression is not callable. 类型 'typeof import("koa-session")' 没有调用签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61964943/

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