JavaScriptのエラーをtscでチェックする
2021-08-22
Techメモです。
いいこと聞いた。
BiwaSchemeはTS使ってないけど、JSDocの記法で型を書けばtscで型チェックできるってことか。
tsconfigを書く。こんな感じ?
{
"compilerOptions": {
"module": "system",
"checkJs": true,
"noEmit": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "src/deps"]
}
% time tsc -b tsconfig.json src/new_expander_dev.js > tmp.txt
tsc -b tsconfig.json src/new_expander_dev.js > tmp.txt 10.35s user 0.31s system 158% cpu 6.748 total
ちょっと時間かかるけど実行できた。
...
src/library/r6rs_lib.js(138,27): error TS2304: Cannot find name 'write_ss'.
src/library/r6rs_lib.js(184,5): error TS2322: Type '{ toString: () => string; to_write: () => string; to_array: () => any[]; length: () => number; }' is not a
ssignable to type 'boolean'.
...
ん?write_ssって冒頭でimportして……ない。バグじゃん。
ということで、型定義とか書かない状態でも、関数のimport忘れくらいなら見つけてくれることが分かった。えらい。