Repository: TypeScript
Issue: `@ts-nocheck` and `@ts-ignore` should also disable suggestions
Labels: Suggestion,Awaiting More Feedback

# Suggestion

<!--
  Please fill in each section completely. Thank you!
-->

## 🔍 Search Terms


<!--
  💡 Did you know? TypeScript has over 2,000 open suggestions!
  🔎 Please search thoroughly before logging new feature requests as most common ideas already have a proposal in progress.
  The "Common Feature Requests" section of the FAQ lists many popular requests: https://github.com/Microsoft/TypeScript/wiki/FAQ#common-feature-requests

  Replace the text below:
-->

@ts-ignore tsserver disable

## ✅ Viability Checklist

<!--
   Suggestions that don't meet all these criteria are very, very unlikely to be accepted.
   We always recommend reviewing the TypeScript design goals before investing time writing
   a proposal for ideas outside the scope of the project.
-->
My suggestion meets these guidelines:

* [x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
* [x] This wouldn't change the runtime behavior of existing JavaScript code
* [x] This could be implemented without emitting different JS based on the types of the expressions
* [x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
* [x] This feature would agree with the rest of [TypeScript's Design Goals](https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals).


## ⭐ Suggestion

<!-- A summary of what you'd like to see added or changed -->

The `// @ts-nocheck` and `// @ts-ignore` directive should, also, disable tsserver providing suggestions

## 📃 Motivating Example

<!--
  If you were announcing this feature in a blog post, what's a short explanation that shows
  a developer why this feature improves the language?
-->

When writing code ,it's nice that we get _real time_ compile & linting errors & warnings (i.e. suggestion). TSSERVER, the language server for typescript, dose the heavy-lifting for your favorite IDE and fills your screen with all those wiggly lines you hate (& love).

Sometime, though, the language server can get it wrong. You are using a feature that's too new. You depend on a library unknown to the server. Or that you are writing buggy code intentionally. To our rescue, we can use _directives_ to tell typescript (and its language server) that "it's ok, I know, roll with it". Directives such as
```ts
// @ts-nocheck: ignore this file
// @ts-ignore: ignore next line
```
are very handy.

Unfortunately, these directives didn't work with _suggestions_. Things like
```
'foo' is declared but its value is never read. [6133]
File is a CommonJS module; it may be converted to an ES module. [80001]
```
Still populated your IDE, and you jump through them like hoops trying to reach the _error_ you want to fix. They are not _ignored_ by placing the directives.

Released with typescript X.X, these directives can now be used to switch off suggestions as well.

## 💻 Use Cases
![ts-ignore](https://user-images.githubusercontent.com/4217249/148164214-cfa2dcea-96f2-437e-9d83-a46c1de03aba.png)
This is a capture from Emacs' lsp-mode. For conventional reasons, we still want to continue using the commonjs style `require` and `module.exports` in js projects.
<!--
  What do you want to use this for?
  What shortcomings exist with current approaches?
  What workarounds are you using in the meantime?
-->