TypeScript中是否有一个选项,以便编译的JavaScript文件与JSHint兼容?

sum*_*umi 7 javascript jshint typescript

请考虑以下TypeScript代码示例.

var checkEqual = function (a:any, b:any) {
    if(a == null)
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我编译它时,它将生成相应的JavaScript文件而没有任何编译时错误,如下所示:

var checkEqual = function (a, b) {
    if (a == null) {
        return false;
    }
};
Run Code Online (Sandbox Code Playgroud)

但是当我在编译的JavaScript代码/文件上运行JSHint时,我会有以下错误/警告:

使用===与null进行比较

我希望TypeScript中编译的JavaScript代码与JSHint兼容(不存在任何错误和警告).这意味着要么它应该生成正确的代码,要么它应该给出编译时错误.

PS:之前我不知道tslint,但即使在使用它之后,它也没有编译与JSHint兼容的JavaScript(JSHint仍在抛出警告).

DaS*_*Sch 8

这根本不可能!从来没有构建TypeScript,目的是创建符合linter的代码.使用TypeScript时,您必须将生成的JavaScript视为字节码.没有理由查看你的字节码.

有些麻烦甚至可能会使用有问题的麻烦this.事实上,在ES5中应该非常谨慎地使用它.但是当使用TypeScript/ES2015类定义时,您需要使用this很多,并且转换为ES5将创建很多它们.因此,创建与您的linter匹配的代码将迫使您不使用TypeScript的许多功能.

所以如果你想要lint字节码,那么你应该写字节码;)

  • 谢谢你的回答,我明白了,会改变我的期望 (2认同)