如何使用ts节点的-r选项预加载typescript类



假设有一个名为lib.ts的文件,其内容如下:

export class A {}
console.log('script loaded');

现在我以这种方式启动ts-nodeREPL:npx ts-node -r ./lib.ts然后我可以看到它打印出";脚本加载";其确认脚本已经被处理。

但是当我在REPL 中运行以下语句时

const a = new A()

它只是抛出错误error TS2304: Cannot find name 'A'.

出于某种原因,我需要预加载我在lib.ts中定义的类,但它似乎不太好用。出了什么问题,如何解决,或者有其他解决方法吗?

我找到的一个简单解决方案是将它们分配给global

class A {}
class B {}
Object.assign(global, {
A,
B,
})
console.log('script loaded');

最新更新