如何将 tsconfig.json 应用于 Emacs org-babel?

How to apply tsconfig.json to the Emacs org-babel?

我正在使用 Emacs 和 org-babel 模式在我的 org-mode 文档中插入 TypeScript 代码示例。 我在.emacs.d/init.el中添加的elisp如下:

(eval-after-load "org" '(org-babel-do-load-languages 'org-babel-load-languages '((typescript . t))))
(require 'typescript-mode)
(add-to-list 'auto-mode-alist '("\.ts\'" . typescript-mode))
(require 'tide)

现在,我想将以下代码作为错误:

#+BEGIN_SRC typescript :results output 
let data_1: string = undefined;
let data_2: string = null;
#+END_SRC

我想我可以通过将 tsconfig.json 指定为:

{
  "compilerOptions": {
    "strictNullChecks": true,
  },
}

但是我可以把tsconfig.json放在哪里?

我修改了 ~/.emacs.d/elpa/tide-20200327.1218/tsserver/tsconfig.json 并重新启动了 Emacs,但没有任何改变。

我从命令行 运行 tsc 确认 tsconfig.json 按预期工作。

谢谢。

要使您提到的代码显示错误,您可以使用 :cmdline 参数。这允许您将命令行参数(例如 --strictNullChecks)直接传递给 tsc:

#+BEGIN_SRC typescript :cmdline --strictNullChecks :results output
let data_1: string = undefined;
let data_2: string = null;
#+END_SRC

我认为您不能使用 tsconfig.json 来配置它,因为要评估代码块,emacs 首先将代码保存到临时文件(例如 /tmp/babel-5NJb2Q/ob-input-Afjtyu),然后运行tsc就可以了(见ob-typescript.el)。该临时文件与您的 tsconfig.json.

无关