是否可以将 Typescript 导入到 ts-node REPL 的 运行 实例中?
Is it possible to import a Typescript into a running instance of ts-node REPL?
我想测试一些我编写的 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
可以吗?
我发现的一种方法如下:
$ ts-node
> import * as abc from './my-file'
> abc.myFunction()
> "works!"
如果您需要在每个 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
我想测试一些我编写的 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
可以吗?
我发现的一种方法如下:
$ ts-node
> import * as abc from './my-file'
> abc.myFunction()
> "works!"
如果您需要在每个 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