refactor: use typed jest globals #79
Closed
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.
Using a patch to play with jestjs/jest#12856. This is a small library mixing JS/TS, so a good playground.
Observations:
The most notable difference from
@types/jestis that just installing@types/jestmakes types of globals available everywhere. If test files live inside__tests__directories, to be precise one should opt-out in source directories through"types": [].In contrary, just installing
jestdoes not make types available. One has to opt-in addingtsconfig.jsonwith"types": ["jest"]in__tests__directories. If I get it right, this would disable other globals coming from@types/*, e.g. Node typings.If test files live next to source (not in separate directories), it is harder to be precise with any opt-ins / opt-outs. In case of
jesttypes,tsconfig.jsonneeds"types": ["jest", "node"].If we have JS library, installing
@jest/typesorjestmakes typings of globals available in all files. Withtsconfig.jsonadded, one has to opt-in forjesttypes, but@jest/typesare still available globally.Also I reworked type checks to include files of e2e and unit tests. Somehow missed it before.