如何在没有 Typescript/TSD 定义的情况下将库导入节点?

How do I import a library into node without a Typescript/TSD definition?

我正在尝试使用一个名为 connect-session-knex 的会话助手,它非常晦涩,以至于没有已发布的打字稿定义。所以当我尝试编译我的打字稿节点项目时,我得到了错误,

error TS2307 Cannot find module 'connect-session-knex'

有没有办法只忽略此模块的 TS?我如何在没有 TSD 的情况下导入它?我知道 knex 有一个 tsd,但包装器没有。我是从如何处理没有类型定义的库的一般角度来问这个问题的。

对于任何正在寻找的人:在没有 tsd 的情况下编译打字稿。缺少 tsd。没有 tsd。

error TS2307 Cannot find module 'connect-session-knex' Is there a way to ignore TS for this module only? How do I import it without the TSD?

使用 var/require 而不是 import/require。即

var csk = require('connect-session-knex');

请注意,要声明 require,您应该包含 node.d.ts

还有:https://basarat.gitbooks.io/typescript/content/docs/node/nodejs.html

另一个建议是启动您自己的 .d.ts 文件作为空定义文件并导出模块。然后,如果你想在模块上获得智能感知,你可以向它添加定义。

例如connect-session-knex.d.ts:


// declare module
declare module "connect-session-knex" {

}