Compilation 获取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):

我想知道是否有一种方法可以让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): 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中出现的当前文件仍然会立即出现错误(不过,需要小心获取损坏的生成输出)。无论如何,非常感谢你的帮助!