我如何 grep/pipe/redirect tsc(TypeScript 编译器)的输出?

How can I grep/pipe/redirect the output of tsc (TypeScript compiler)?

我的项目包含一个非常简单的 index.ts:

const answer: 42 = 43;

如果我编译它,我会得到一个预期的类型错误(带有颜色;此处未显示):

$ tsc
index.ts:1:7 - error TS2322: Type '43' is not assignable to type '42'.

1 const answer: 42 = 43;
        ~~~~~~


Found 1 error.

假设我想 grep 查找类型错误:

$ tsc | grep "const answer"

我没有得到任何结果。难怪:

$ tsc | wc -l
1
$ tsc | cat
index.ts(1,7): error TS2322: Type '43' is not assignable to type '42'.

重定向没有帮助:

$ tsc 2>&1 | wc -l
1
$ tsc 2>&1 | cat
index.ts(1,7): error TS2322: Type '43' is not assignable to type '42'.

如何在终端中访问 tsc 的完整输出?

使用--pretty标志:

$ tsc --pretty | grep "const answer"
1 const answer: 42 = 43;

(注意"--pretty output is not meant to be parsed",慎用。)

它是这样工作的:

$ tsc --pretty false
index.ts(1,7): error TS2322: Type '43' is not assignable to type '42'.
$ tsc --pretty true
index.ts:1:7 - error TS2322: Type '43' is not assignable to type '42'.

1 const answer: 42 = 43;
        ~~~~~~


Found 1 error.

默认开启,"unless piping to another program or redirecting output to a file".

您也可以在 tsconfig.json:

中指定
{
    "compilerOptions": {
        "pretty": true,
    },
}