Compilation 获取WebStorm中从属TypeScript文件的编译错误
我想知道是否有一种方法可以让WebStorm在编辑后显示相关TypeScript文件中的编译错误。例如,假设我有Compilation 获取WebStorm中从属TypeScript文件的编译错误,compilation,compiler-errors,typescript,webstorm,Compilation,Compiler Errors,Typescript,Webstorm,我想知道是否有一种方法可以让WebStorm在编辑后显示相关TypeScript文件中的编译错误。例如,假设我有Class1.ts,如下所示: class Class1 { foo(n: number): number { return 3; } } export = Class1; 还有Class2.ts: import Class1 = require('./Class1'); class Class2 extends Class1 { foo(n: number):
Class1.ts
,如下所示:
class Class1 {
foo(n: number): number { return 3; }
}
export = Class1;
还有Class2.ts
:
import Class1 = require('./Class1');
class Class2 extends Class1 {
foo(n: number): number { return 4; }
}
现在,假设我编辑Class1.ts
并更改foo
的参数类型:
class Class1 {
foo(n: string): number { return 3; }
}
export = Class1;
当我执行编辑和保存时,我没有看到任何新的错误出现。如果我将焦点切换到
Class2.ts
选项卡,此时会出现“不兼容覆盖”消息。但理想的情况是,我希望在编辑之后能看到我在整个项目中引入的所有错误。是否可以启用某些视图来完成此任务?是否可以选择使用外部filewatcher
我发现用于typescript
的webstorm filewatcher有点问题。因此,我禁用了filewatcher,并在它的位置simpyly使用grunt contrib watch
。它工作得很好,如果您需要它,它会提供更多的灵活性
您可以在grunfile.js中执行类似的操作:
module.exports = function (grunt) {
var files = [
'app/**/*.ts'
];
grunt.initConfig({
tslint: {
options: {
configuration: grunt.file.readJSON("tslint.json")
},
files: {
src: files
}
},
typescript: {
base: {
src: files,
options: {
module: 'commonjs',
target: 'es5'
}
},
build: {
src: ['./app.ts'],
options: {
module: 'commonjs',
target: 'es5'
}
}
},
watch: {
ts: {
files: ['app/**/*.ts', 'shared/**/*.ts'],
tasks: ['typescript']
}
}
});
// Load Tasks
grunt.loadNpmTasks('grunt-tslint');
grunt.loadNpmTasks('grunt-typescript');
grunt.loadNpmTasks('grunt-contrib-watch');
// Register Tasks
grunt.registerTask('default', ['watch']);
};
然后只需运行grunt
即可执行watch
命令,您就可以消除webstorm typescript filewatcher。这将给您在保存时查找的生成错误
*注意:我把tslint
放在gruntfile中,因为定期在文件上运行tslint
是个好主意,但这肯定不是必需的。如果您对此有任何疑问,请告诉我。仍然是手动过程,但最好是猜测需要打开哪些文件
选择一个项目根文件夹,点击Ctrl+Shift+a->Ctrl+Shift+a以启用非菜单操作->键入“运行文件”->选择运行文件查看器。。。。
这是对另一个问题的部分回答。(WebStorm现在支持。您需要设置tsconfig.json文件,然后转到file/Settings/Languages&Frameworks/TypeScript并选中“Use tsconfig.json”。一旦我这样做了,我就能够(最终)在TypeScript编译器窗口中看到类型错误。错误不会像在Visual Studio中那样立即出现。但对我来说,它们出现在15到30秒内。另外,另一种快速的方法是在操作系统或WebStorm中打开一个终端窗口并键入“tsc--watch”。这会告诉TypeScript编译器立即编译所有内容,并显示所有错误。“--watch”表示tsc(TypeScript编译器)将继续监视所有.ts文件,并在终端窗口中显示任何错误。我不确定是否有一种方法可以在保存时自动执行此操作,但构建项目似乎会为我产生错误。@user1308743谢谢!我仍然希望WebStorm能够跟踪依赖项并自动重新编译保存时所需的内容,不过,就像Eclipse JDT对Java所做的那样。WebStorm会在每次更改时重新索引文件,并更新编辑器中显示的错误/警告,作为代码分析的结果。要在单独的窗口中查看所有这些错误,请运行代码/检查代码。但请注意,与编辑器中的错误标记不同,此窗口不会在文件更改时自动更新。因此,您需要在每次想要更新它时显式地调用它。您可以为该操作指定一些快捷方式并点击它,就像在Eclipse中点击Ctrl+S以更新“问题”视图一样:)@user1308743您说构建项目可以为您实现这一点,您在哪里选择在Webstorm中构建项目?酷!用这种方法仍然可以在WebStorm中导航编译错误吗?绝对可以。您仍然可以获得WebStorm的所有预期功能—错误突出显示、将鼠标悬停在错误消息上等。grunt watcher还将映射回项目中的.ts文件,这样您就可以通过这种方式查看错误的行号和文件名。好的,我试了一下,它确实在终端窗口中显示了所有编译错误,我在保存文件时在该窗口中运行了“grunt”。然而,我没有看到WebStorm中出现任何错误。我的“咕噜”跑错了吗?还是我遗漏了什么?@ManuSridharan我想我误解了你之前的评论。WebStorm中的错误不一定会像使用内置filewatcher时在WebStorm底部窗口中那样“弹出”。当您的终端出现错误时,它将附带一个文件名和一行。然后可以导航到该文件(⌘ + O)默认情况下,您将看到错误以红色突出显示。因此,是的,当您在WebStorm中的文件上时,您可以很容易地识别错误。你不一定会有“面对面”的警告,除非你的终端在你面前。啊,我明白了。这是一个很好的进步,但不是我想要的。一种选择是在filewatcher之外运行这个程序,这样,WebStorm中出现的当前文件仍然会立即出现错误(不过,需要小心获取损坏的生成输出)。无论如何,非常感谢你的帮助!