-
Notifications
You must be signed in to change notification settings - Fork 13.2k
Description
π Search Terms
file listing watch mode
file summary watch mode
β Viability Checklist
- This wouldn't be a breaking change in existing TypeScript/JavaScript code
- This wouldn't change the runtime behavior of existing JavaScript code
- This could be implemented without emitting different JS based on the types of the expressions
- This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
- This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
- This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals
β Suggestion
When running tsc with the --watch flag, we should see a list of files with errors, similar to what you see when running without --watch.
Running without watch
npx tsc
src/bar.ts:3:5 - error TS2554: Expected 0 arguments, but got 1.
3 bar(1);
~
src/foo.ts:2:3 - error TS18048: 'a' is possibly 'undefined'.
2 a.toString();
~
π
Found 2 errors in 2 files.
Errors Files
1 src/bar.ts:3 π these are clickable and I don't have to scroll up the terminal to see them
1 src/foo.ts:2
π
Running with watch mode
First run:
[9:49:05 AM] Starting compilation in watch mode...
src/bar.ts:3:5 - error TS2554: Expected 0 arguments, but got 1.
3 bar(1);
~
src/foo.ts:2:3 - error TS18048: 'a' is possibly 'undefined'.
2 a.toString();
~
[9:49:05 AM] Found 2 errors. Watching for file changes.
After a file change to bar.ts
src/bar.ts:5:5 - error TS2554: Expected 0 arguments, but got 1.
5 bar(2);
~
src/foo.ts:2:3 - error TS18048: 'a' is possibly 'undefined'.
2 a.toString();
~
[9:49:53 AM] Found 2 errors. Watching for file changes.
The ask
Either by default, or with an option (--showFileSummaryInWatchMode ?) show the file summary when running with watch mode.
π Motivating Example
When running the TypeScript compiler in watch mode, you now have the option to see the list of files with errors.
π» Use Cases
The main use case I have in mind, is for when I make a breaking change to a type in my codebase, and I need to know the impact this change can have.
Because these file paths are clickable in most IDEs (On MacOS cmd+click will open the file in the IDE), this file list can be a very convenient starting point to see the impact/make changes.
eg. I make a change to type X making a property optional, and I can see that this causes type errors in files A, B, C. I got to file A and to fix the type error, I make a return property there optional. I now see additional errors in files H,I,J,K,L,M,N,O. I abandon this approach.
Related
#22124 - This is about pretty mode and watch mode. It's essentially asking the same thing 'I don't need to see all the details of the errors, I just want to see the file count'.
The issue is marked as completed - but I can't see that it actually does what the OP wants. AFAICT all it does is add colors to the terminal.