Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Add TypeScript linting support #6513

Merged
merged 4 commits into from
Mar 15, 2019
Merged

Conversation

ianschmitz
Copy link
Contributor

@ianschmitz ianschmitz commented Feb 24, 2019

Closes #5641.

This adds linting support for TypeScript via typescript-eslint. With this setup we are able to reuse the vast majority of our current ESLint rules.

TODO:

  • Finalize rules
  • Thoroughly test both js/ts scenarios as some ESLint rules don't play nice with typescript-eslint (eg. indent)
  • Test with VSCode ESLint plugin

image

Sorry, something went wrong.

@mrmckeb
Copy link
Contributor

mrmckeb commented Feb 25, 2019

This looks great, @ianschmitz.

Do you think we should consider adding plugin:@typescript-eslint/recommended?, or do you think that'll be too opinionated? I know we generally stay away from enforcing too much.

I can see that you already took a little from that plugin. I've been playing with it and it does force you to define return types for every function, but otherwise seems fairly light.

@ianschmitz
Copy link
Contributor Author

I looked through the rules there and quite a few were stylistic which I know we've avoided in our ESLint config.

There's a few missing rules from TSLint like some of their promise rules that were really nice that I wish typescript-eslint had.

@iansu
Copy link
Contributor

iansu commented Feb 25, 2019

Now that TSLint is going to be deprecated it sounds like they will be bringing missing rules over to typescript-eslint.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
@ianschmitz ianschmitz marked this pull request as ready for review March 15, 2019 02:21
JoviDeCroock added a commit to JoviDeCroock/create-react-app that referenced this pull request Mar 15, 2019
* masterd: (24 commits)
  Add TypeScript linting support (facebook#6513)
  Support React Hooks (facebook#5602) (facebook#5997)
  Support browserslist in @babel/preset-env (facebook#6608)
  Add empty mock for http2 (facebook#5686)
  Add note about npx caching (facebook#6374)
  change named import into default import (facebook#6625)
  Stage files for commit after ejecting (facebook#5960)
  Upgrade dependencies (facebook#6614)
  Make compiler variable const instead of let (facebook#6621)
  Type check JSON files (facebook#6615)
  Change class components to functional components in templates (facebook#6451)
  Convert JSON.stringify \n to os.EOL when writing tsconfig.json (facebook#6610)
  Update html-webpack-plugin (facebook#6361)
  Enable click to go to error in console for TypeScript (facebook#6502)
  Update webpack-dev-server to 3.2.1 (facebook#6483)
  [docs] revert removal of newlines from html (facebook#6386)
  Publish
  Prepare 2.1.8 release
  Reapply "Speed up TypeScript v2 (facebook#6406)" (facebook#6586)
  Publish
  ...

# Conflicts:
#	packages/babel-preset-react-app/create.js
#	packages/react-scripts/scripts/build.js
@lock lock bot locked and limited conversation to collaborators Mar 20, 2019
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add TypeScript linting support
5 participants