fix(website): acquired types are shown in the editor but not reflected in linting #11198
+12
−7
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Checklist
Overview
I think this issue occurs because of differences in the properties used when creating a ts.Program between Monaco and TypeScript-VFS.
The modules like monaco, [typescript]
(https://github.com/microsoft/TypeScript), and typescript-website are scattered, so it’s a bit confusing
1. create
ts.program
by monaceWhen monaco-editor creating this code will excute link
private _languageService = ts.createLanguageService(this);
createLanguageService in typescript. link
And filenames output by
getScriptFileNames
will be added in the code below.defaults.addExtraLib(code, path)
in typescript-website =>defaults.addExtraLib(code, path)
in monacoSo, when creating a ts.Program, the rootNames array includes some libraries, such as Node or React.
2. create
ts.program
by TypeScript-VFS.Unlike case 1 above,We don't pass the name of a node_modules folder in fileNames.
In the sentence above, I modified it so that rootNames are provided when creating the
ts.Program
for both the Editor and Linting