是否可以将Typescript导入到ts-node REPL的运行实例中?

时间:2018-09-05 21:19:50

标签: typescript import module read-eval-print-loop ts-node

我想测试一些我编写的Typescript代码。

到目前为止,我所知道的最好方法是运行ts-node my-file-name.ts

但是,我想使它更具交互性,类似于Python REPL允许您导入模块,然后根据需要从REPL中调用函数的方法。

例如,会话可能看起来像

$ ts-node
> import my-file-name.ts
> myFunctionFromMyFile("specialParam")
> "you just called a function from my-file-name.ts with param specialParam"

ts-node有可能吗?

2 个答案:

答案 0 :(得分:3)

我发现执行此操作的一种方法如下:

$ ts-node
> import * as abc from './my-file'
> abc.myFunction()
> "works!"

答案 1 :(得分:0)

如果您需要在每个 REPL 会话中自动导入的内容,您可以在文件中公开您的应用,然后在该文件中使用 repl.start。例如,像这样创建 console.ts

import repl from 'repl';
import * as models from './models';

Object.keys(models).forEach((modelName) => {
  global[modelName] = models[modelName];
});

const replServer = repl.start({
  prompt: 'app > ',
});

replServer.context.db = models;

并使用

运行控制台
$ node --require ts-node/register/transpile-only --experimental-repl-await console

更多详情here