René's URL Explorer Experiment


Title: GitHub - Yogeui/react: Cheatsheets for experienced React developers getting started with TypeScript

Open Graph Title: GitHub - Yogeui/react: Cheatsheets for experienced React developers getting started with TypeScript

X Title: GitHub - Yogeui/react: Cheatsheets for experienced React developers getting started with TypeScript

Description: Cheatsheets for experienced React developers getting started with TypeScript - Yogeui/react

Open Graph Description: Cheatsheets for experienced React developers getting started with TypeScript - Yogeui/react

X Description: Cheatsheets for experienced React developers getting started with TypeScript - Yogeui/react

Opengraph URL: https://github.com/Yogeui/react

X: @github

direct link

Domain: patch-diff.githubusercontent.com

route-pattern/:user_id/:repository
route-controllerfiles
route-actiondisambiguate
fetch-noncev2:6fc3e73e-2838-92df-130f-1d9f3eeac518
current-catalog-service-hashf3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb
request-idCBC6:1931FB:9B900DF:CE33287:698C0D2F
html-safe-nonce5eca564d2d2c49589acb0b6ea8cc3864df7b5ca2e8b7785925cd1bd4e63c35bf
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQkM2OjE5MzFGQjo5QjkwMERGOkNFMzMyODc6Njk4QzBEMkYiLCJ2aXNpdG9yX2lkIjoiOTE1Mjk4MzUyOTAwODQwMTcxMSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac61fb30755eebb475d19c52ab7306c501ec24f9bc022d4ec0ec2e4e2ed06c6ab2
hovercard-subject-tagrepository:634245379
github-keyboard-shortcutsrepository,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location//
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/Yogeui/react
twitter:imagehttps://opengraph.githubassets.com/1c9a0c110c379d26b80d77b9d36be193f6d1f2b06652a69b45a48d479e318305/Yogeui/react
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/1c9a0c110c379d26b80d77b9d36be193f6d1f2b06652a69b45a48d479e318305/Yogeui/react
og:image:altCheatsheets for experienced React developers getting started with TypeScript - Yogeui/react
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None640eeb7b6ff4d8d106235d228c0c286e82592d4d2403227b5b2b4fc5832297a4
turbo-cache-controlno-preview
go-importgithub.com/Yogeui/react git https://github.com/Yogeui/react.git
octolytics-dimension-user_id89738325
octolytics-dimension-user_loginYogeui
octolytics-dimension-repository_id634245379
octolytics-dimension-repository_nwoYogeui/react
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forktrue
octolytics-dimension-repository_parent_id135786093
octolytics-dimension-repository_parent_nwotypescript-cheatsheets/react
octolytics-dimension-repository_network_root_id135786093
octolytics-dimension-repository_network_root_nwotypescript-cheatsheets/react
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release3d444f0a47beeeac94cddbb51c91ab408befe8d4
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/Yogeui/react#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2FYogeui%2Freact
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2FYogeui%2Freact
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=Yogeui%2Freact
Reloadhttps://patch-diff.githubusercontent.com/Yogeui/react
Reloadhttps://patch-diff.githubusercontent.com/Yogeui/react
Reloadhttps://patch-diff.githubusercontent.com/Yogeui/react
Yogeui https://patch-diff.githubusercontent.com/Yogeui
reacthttps://patch-diff.githubusercontent.com/Yogeui/react
typescript-cheatsheets/reacthttps://patch-diff.githubusercontent.com/typescript-cheatsheets/react
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2FYogeui%2Freact
Fork 0 https://patch-diff.githubusercontent.com/login?return_to=%2FYogeui%2Freact
Star 1 https://patch-diff.githubusercontent.com/login?return_to=%2FYogeui%2Freact
react-typescript-cheatsheet.netlify.apphttps://react-typescript-cheatsheet.netlify.app
MIT license https://patch-diff.githubusercontent.com/Yogeui/react/blob/main/LICENSE
1 star https://patch-diff.githubusercontent.com/Yogeui/react/stargazers
4.3k forks https://patch-diff.githubusercontent.com/Yogeui/react/forks
Branches https://patch-diff.githubusercontent.com/Yogeui/react/branches
Tags https://patch-diff.githubusercontent.com/Yogeui/react/tags
Activity https://patch-diff.githubusercontent.com/Yogeui/react/activity
Star https://patch-diff.githubusercontent.com/login?return_to=%2FYogeui%2Freact
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2FYogeui%2Freact
Code https://patch-diff.githubusercontent.com/Yogeui/react
Pull requests 0 https://patch-diff.githubusercontent.com/Yogeui/react/pulls
Actions https://patch-diff.githubusercontent.com/Yogeui/react/actions
Projects 0 https://patch-diff.githubusercontent.com/Yogeui/react/projects
Security 0 https://patch-diff.githubusercontent.com/Yogeui/react/security
Insights https://patch-diff.githubusercontent.com/Yogeui/react/pulse
Code https://patch-diff.githubusercontent.com/Yogeui/react
Pull requests https://patch-diff.githubusercontent.com/Yogeui/react/pulls
Actions https://patch-diff.githubusercontent.com/Yogeui/react/actions
Projects https://patch-diff.githubusercontent.com/Yogeui/react/projects
Security https://patch-diff.githubusercontent.com/Yogeui/react/security
Insights https://patch-diff.githubusercontent.com/Yogeui/react/pulse
Brancheshttps://patch-diff.githubusercontent.com/Yogeui/react/branches
Tagshttps://patch-diff.githubusercontent.com/Yogeui/react/tags
https://patch-diff.githubusercontent.com/Yogeui/react/branches
https://patch-diff.githubusercontent.com/Yogeui/react/tags
1,006 Commitshttps://patch-diff.githubusercontent.com/Yogeui/react/commits/main/
https://patch-diff.githubusercontent.com/Yogeui/react/commits/main/
.githubhttps://patch-diff.githubusercontent.com/Yogeui/react/tree/main/.github
.githubhttps://patch-diff.githubusercontent.com/Yogeui/react/tree/main/.github
.huskyhttps://patch-diff.githubusercontent.com/Yogeui/react/tree/main/.husky
.huskyhttps://patch-diff.githubusercontent.com/Yogeui/react/tree/main/.husky
docshttps://patch-diff.githubusercontent.com/Yogeui/react/tree/main/docs
docshttps://patch-diff.githubusercontent.com/Yogeui/react/tree/main/docs
websitehttps://patch-diff.githubusercontent.com/Yogeui/react/tree/main/website
websitehttps://patch-diff.githubusercontent.com/Yogeui/react/tree/main/website
.all-contributorsrchttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/.all-contributorsrc
.all-contributorsrchttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/.all-contributorsrc
.dockerignorehttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/.dockerignore
.dockerignorehttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/.dockerignore
.gitignorehttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/.gitignore
.gitignorehttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/.gitignore
.nvmrchttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/.nvmrc
.nvmrchttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/.nvmrc
CONTRIBUTING.mdhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/CONTRIBUTING.md
CONTRIBUTING.mdhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/CONTRIBUTING.md
CONTRIBUTORS.mdhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/CONTRIBUTORS.md
CONTRIBUTORS.mdhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/CONTRIBUTORS.md
LICENSEhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/LICENSE
LICENSEhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/LICENSE
README.mdhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/README.md
README.mdhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/README.md
code-of-conduct.mdhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/code-of-conduct.md
code-of-conduct.mdhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/code-of-conduct.md
copyFile.jshttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/copyFile.js
copyFile.jshttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/copyFile.js
genReadme.jshttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/genReadme.js
genReadme.jshttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/genReadme.js
netlify.tomlhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/netlify.toml
netlify.tomlhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/netlify.toml
package.jsonhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/package.json
package.jsonhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/package.json
yarn.lockhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/yarn.lock
yarn.lockhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/yarn.lock
READMEhttps://patch-diff.githubusercontent.com/Yogeui/react
Code of conducthttps://patch-diff.githubusercontent.com/Yogeui/react
Contributinghttps://patch-diff.githubusercontent.com/Yogeui/react
Licensehttps://patch-diff.githubusercontent.com/Yogeui/react
https://patch-diff.githubusercontent.com/Yogeui/react#reacttypescript-cheatsheets
https://github.com/typescript-cheatsheets/react/issues/81
Web docshttps://react-typescript-cheatsheet.netlify.app/docs/basic/setup
Españolhttps://github.com/typescript-cheatsheets/react-typescript-cheatsheet-es
Portuguêshttps://github.com/typescript-cheatsheets/react-pt
Contribute!https://github.com/typescript-cheatsheets/react/blob/main/CONTRIBUTING.md
Ask!https://github.com/typescript-cheatsheets/react/issues/new/choose
@swyxhttps://twitter.com/swyx
@eps1lonhttps://twitter.com/sebsilbermann
@filiptammergardhttps://twitter.com/tammergard
file an issuehttps://github.com/typescript-cheatsheets/react/issues/new/choose
https://patch-diff.githubusercontent.com/Yogeui/react/blob/main/CONTRIBUTORS.md
https://discord.gg/wTGS5z9
http://twitter.com/home?status=Awesome%20%40Reactjs%20%2B%20%40TypeScript%20cheatsheet%20by%20%40ferdaber%2C%20%40sebsilbermann%2C%20%40swyx%20%26%20others!%20https%3A%2F%2Fgithub.com%2Ftypescript-cheatsheets%2Freact
https://patch-diff.githubusercontent.com/Yogeui/react#all-react--typescript-cheatsheets
The Basic Cheatsheethttps://react-typescript-cheatsheet.netlify.app/docs/basic/setup
The Advanced Cheatsheethttps://react-typescript-cheatsheet.netlify.app/docs/advanced
The Migrating Cheatsheethttps://react-typescript-cheatsheet.netlify.app/docs/migration
The HOC Cheatsheethttps://react-typescript-cheatsheet.netlify.app/docs/hoc
Genericshttps://www.typescriptlang.org/docs/handbook/2/generics.html
https://patch-diff.githubusercontent.com/Yogeui/react#basic-cheatsheet
https://patch-diff.githubusercontent.com/Yogeui/react#basic-cheatsheet-table-of-contents
Section 1: Setup TypeScript with Reacthttps://patch-diff.githubusercontent.com/Yogeui/react#section-1-setup-typescript-with-react
Prerequisiteshttps://patch-diff.githubusercontent.com/Yogeui/react#prerequisites
React and TypeScript starter kitshttps://patch-diff.githubusercontent.com/Yogeui/react#react-and-typescript-starter-kits
Try React and TypeScript onlinehttps://patch-diff.githubusercontent.com/Yogeui/react#try-react-and-typescript-online
Section 2: Getting Startedhttps://patch-diff.githubusercontent.com/Yogeui/react#section-2-getting-started
Function Componentshttps://patch-diff.githubusercontent.com/Yogeui/react#function-components
Hookshttps://patch-diff.githubusercontent.com/Yogeui/react#hooks
useStatehttps://patch-diff.githubusercontent.com/Yogeui/react#usestate
useReducerhttps://patch-diff.githubusercontent.com/Yogeui/react#usereducer
useEffect / useLayoutEffecthttps://patch-diff.githubusercontent.com/Yogeui/react#useeffect--uselayouteffect
useRefhttps://patch-diff.githubusercontent.com/Yogeui/react#useref
Option 1: DOM element refhttps://patch-diff.githubusercontent.com/Yogeui/react#option-1-dom-element-ref
Option 2: Mutable value refhttps://patch-diff.githubusercontent.com/Yogeui/react#option-2-mutable-value-ref
See alsohttps://patch-diff.githubusercontent.com/Yogeui/react#see-also
useImperativeHandlehttps://patch-diff.githubusercontent.com/Yogeui/react#useimperativehandle
Custom Hookshttps://patch-diff.githubusercontent.com/Yogeui/react#custom-hooks
More Hooks + TypeScript reading:https://patch-diff.githubusercontent.com/Yogeui/react#more-hooks--typescript-reading
Example React Hooks + TypeScript Libraries:https://patch-diff.githubusercontent.com/Yogeui/react#example-react-hooks--typescript-libraries
Class Componentshttps://patch-diff.githubusercontent.com/Yogeui/react#class-components
Typing getDerivedStateFromPropshttps://patch-diff.githubusercontent.com/Yogeui/react#typing-getderivedstatefromprops
You May Not Need defaultPropshttps://patch-diff.githubusercontent.com/Yogeui/react#you-may-not-need-defaultprops
Typing defaultPropshttps://patch-diff.githubusercontent.com/Yogeui/react#typing-defaultprops
Consuming Props of a Component with defaultPropshttps://patch-diff.githubusercontent.com/Yogeui/react#consuming-props-of-a-component-with-defaultprops
Problem Statementhttps://patch-diff.githubusercontent.com/Yogeui/react#problem-statement
Solutionhttps://patch-diff.githubusercontent.com/Yogeui/react#solution
Misc Discussions and Knowledgehttps://patch-diff.githubusercontent.com/Yogeui/react#misc-discussions-and-knowledge
Typing Component Propshttps://patch-diff.githubusercontent.com/Yogeui/react#typing-component-props
Basic Prop Types Exampleshttps://patch-diff.githubusercontent.com/Yogeui/react#basic-prop-types-examples
Useful React Prop Type Exampleshttps://patch-diff.githubusercontent.com/Yogeui/react#useful-react-prop-type-examples
Types or Interfaces?https://patch-diff.githubusercontent.com/Yogeui/react#types-or-interfaces
TL;DRhttps://patch-diff.githubusercontent.com/Yogeui/react#tldr
More Advicehttps://patch-diff.githubusercontent.com/Yogeui/react#more-advice
Useful table for Types vs Interfaceshttps://patch-diff.githubusercontent.com/Yogeui/react#useful-table-for-types-vs-interfaces
getDerivedStateFromPropshttps://patch-diff.githubusercontent.com/Yogeui/react#getderivedstatefromprops
Forms and Eventshttps://patch-diff.githubusercontent.com/Yogeui/react#forms-and-events
List of event typeshttps://patch-diff.githubusercontent.com/Yogeui/react#list-of-event-types
Contexthttps://patch-diff.githubusercontent.com/Yogeui/react#context
Basic Examplehttps://patch-diff.githubusercontent.com/Yogeui/react#basic-example
Extended Examplehttps://patch-diff.githubusercontent.com/Yogeui/react#extended-example
forwardRef/createRefhttps://patch-diff.githubusercontent.com/Yogeui/react#forwardrefcreateref
Generic forwardRefshttps://patch-diff.githubusercontent.com/Yogeui/react#generic-forwardrefs
Option 1 - Wrapper componenthttps://patch-diff.githubusercontent.com/Yogeui/react#option-1---wrapper-component
Option 2 - Redeclare forwardRefhttps://patch-diff.githubusercontent.com/Yogeui/react#option-2---redeclare-forwardref
More Infohttps://patch-diff.githubusercontent.com/Yogeui/react#more-info
Portalshttps://patch-diff.githubusercontent.com/Yogeui/react#portals
Error Boundarieshttps://patch-diff.githubusercontent.com/Yogeui/react#error-boundaries
Option 1: Using react-error-boundaryhttps://patch-diff.githubusercontent.com/Yogeui/react#option-1-using-react-error-boundary
Options 2: Writing your custom error boundary componenthttps://patch-diff.githubusercontent.com/Yogeui/react#options-2-writing-your-custom-error-boundary-component
Concurrent React/React Suspensehttps://patch-diff.githubusercontent.com/Yogeui/react#concurrent-reactreact-suspense
Troubleshooting Handbook: Typeshttps://patch-diff.githubusercontent.com/Yogeui/react#troubleshooting-handbook-types
Union Types and Type Guardinghttps://patch-diff.githubusercontent.com/Yogeui/react#union-types-and-type-guarding
Optional Typeshttps://patch-diff.githubusercontent.com/Yogeui/react#optional-types
Enum Typeshttps://patch-diff.githubusercontent.com/Yogeui/react#enum-types
Type Assertionhttps://patch-diff.githubusercontent.com/Yogeui/react#type-assertion
Simulating Nominal Typeshttps://patch-diff.githubusercontent.com/Yogeui/react#simulating-nominal-types
Intersection Typeshttps://patch-diff.githubusercontent.com/Yogeui/react#intersection-types
Union Typeshttps://patch-diff.githubusercontent.com/Yogeui/react#union-types
Overloading Function Typeshttps://patch-diff.githubusercontent.com/Yogeui/react#overloading-function-types
Using Inferred Typeshttps://patch-diff.githubusercontent.com/Yogeui/react#using-inferred-types
Using Partial Typeshttps://patch-diff.githubusercontent.com/Yogeui/react#using-partial-types
The Types I need weren't exported!https://patch-diff.githubusercontent.com/Yogeui/react#the-types-i-need-werent-exported
The Types I need don't exist!https://patch-diff.githubusercontent.com/Yogeui/react#the-types-i-need-dont-exist
Slapping any on everythinghttps://patch-diff.githubusercontent.com/Yogeui/react#slapping-any-on-everything
Autogenerate typeshttps://patch-diff.githubusercontent.com/Yogeui/react#autogenerate-types
Typing Exported Hookshttps://patch-diff.githubusercontent.com/Yogeui/react#typing-exported-hooks
Typing Exported Componentshttps://patch-diff.githubusercontent.com/Yogeui/react#typing-exported-components
Frequent Known Problems with TypeScripthttps://patch-diff.githubusercontent.com/Yogeui/react#frequent-known-problems-with-typescript
TypeScript doesn't narrow after an object element null checkhttps://patch-diff.githubusercontent.com/Yogeui/react#typescript-doesnt-narrow-after-an-object-element-null-check
TypeScript doesn't let you restrict the type of childrenhttps://patch-diff.githubusercontent.com/Yogeui/react#typescript-doesnt-let-you-restrict-the-type-of-children
Troubleshooting Handbook: Operatorshttps://patch-diff.githubusercontent.com/Yogeui/react#troubleshooting-handbook-operators
Troubleshooting Handbook: Utilitieshttps://patch-diff.githubusercontent.com/Yogeui/react#troubleshooting-handbook-utilities
Troubleshooting Handbook: tsconfig.jsonhttps://patch-diff.githubusercontent.com/Yogeui/react#troubleshooting-handbook-tsconfigjson
Troubleshooting Handbook: Fixing bugs in official typingshttps://patch-diff.githubusercontent.com/Yogeui/react#troubleshooting-handbook-fixing-bugs-in-official-typings
Troubleshooting Handbook: Globals, Images and other non-TS fileshttps://patch-diff.githubusercontent.com/Yogeui/react#troubleshooting-handbook-globals-images-and-other-non-ts-files
Editor Tooling and Integrationhttps://patch-diff.githubusercontent.com/Yogeui/react#editor-tooling-and-integration
Lintinghttps://patch-diff.githubusercontent.com/Yogeui/react#linting
Other React + TypeScript resourceshttps://patch-diff.githubusercontent.com/Yogeui/react#other-react--typescript-resources
Recommended React + TypeScript talkshttps://patch-diff.githubusercontent.com/Yogeui/react#recommended-react--typescript-talks
Time to Really Learn TypeScripthttps://patch-diff.githubusercontent.com/Yogeui/react#time-to-really-learn-typescript
Example Apphttps://patch-diff.githubusercontent.com/Yogeui/react#example-app
https://patch-diff.githubusercontent.com/Yogeui/react#section-1-setup
https://patch-diff.githubusercontent.com/Yogeui/react#prerequisites
Reacthttps://react.dev/
TypeScript Basicshttps://www.typescriptlang.org/docs/handbook/2/basic-types.html
Everyday Typeshttps://www.typescriptlang.org/docs/handbook/2/everyday-types.html
https://patch-diff.githubusercontent.com/Yogeui/react#react-and-typescript-starter-kits
how to start a new React projecthttps://react.dev/learn/start-a-new-react-project
Next.jshttps://nextjs.org/docs/basic-features/typescript
Remixhttps://remix.run/docs/tutorials/blog
Gatsbyhttps://www.gatsbyjs.com/docs/how-to/custom-configuration/typescript/
Expohttps://docs.expo.dev/guides/typescript/
https://patch-diff.githubusercontent.com/Yogeui/react#try-react-and-typescript-online
TypeScript playgroundhttps://www.typescriptlang.org/play?target=8&jsx=4#code/JYWwDg9gTgLgBAbzgVwM4FMDKMCGN0A0KGAogGZnoDG8AvnGVBCHAORTo42sDcAsAChB6AB6RYcKhAB2qeAGEIyafihwAvHAAUASg0A+RILiSZcuAG0pymEQwxFNgLobiWXPi0AGHfyECTNHRyShotXQMjAJM4ABMIKmQQdBUAOhhgGAAbdFcAAwBNJUks4CoAa3RYuAASBGsVegzk1Dy-E1pfQWM4DhhkKGltHpMAHn0RmNGwfSLkErLK6vqlRrhm9FRRgHoZybGAI2QYGBk4GXlSivUECPVDe0cVLQb4AGo4AEYdWgnomJil0WcGS+zgOyOJxkfwBOxhcC6AlogiAA
StackBlitzhttps://stackblitz.com/fork/react-ts
CodeSandboxhttps://ts.react.new/
https://patch-diff.githubusercontent.com/Yogeui/react#section-2-getting-started
https://patch-diff.githubusercontent.com/Yogeui/react#function-components
Paul Shen's VS Code Extensionhttps://marketplace.visualstudio.com/items?itemName=paulshen.paul-typescript-toolkit
keyboard shortcuthttps://twitter.com/_paulshen/status/1392915279466745857?s=20
discouragedhttps://github.com/facebook/create-react-app/pull/8177
this jscodeshift codemodhttps://github.com/gndelia/codemod-replace-react-fc-typescript
this issue for detailshttps://github.com/typescript-cheatsheets/react/issues/87
React 18 type updateshttps://github.com/DefinitelyTyped/DefinitelyTyped/pull/56210
React.FC was removed from the Create React App TypeScript templatehttps://github.com/facebook/create-react-app/pull/8177
@types/react 16.9.48https://github.com/DefinitelyTyped/DefinitelyTyped/pull/46643
DefinitelyTyped/DefinitelyTyped#59882https://github.com/DefinitelyTyped/DefinitelyTyped/pull/59882
See commentary by @ferdaber herehttps://github.com/typescript-cheatsheets/react/issues/57
https://patch-diff.githubusercontent.com/Yogeui/react#hooks
supported in @types/react from v16.8 uphttps://github.com/DefinitelyTyped/DefinitelyTyped/blob/a05cc538a42243c632f054e42eab483ebf1560ab/types/react/index.d.ts#L800-L1031
https://patch-diff.githubusercontent.com/Yogeui/react#usestate
Using Inferred Typeshttps://react-typescript-cheatsheet.netlify.app/docs/basic/troubleshooting/types/#using-inferred-types
https://patch-diff.githubusercontent.com/Yogeui/react#usecallback
https://patch-diff.githubusercontent.com/Yogeui/react#usereducer
Discriminated Unionshttps://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes-func.html#discriminated-unions
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play#code/LAKFEsFsAcHsCcAuACAVMghgZ2QJQKYYDGKAZvLJMgOTyEnUDcooRsAdliuO+IuBgA2AZUQZE+ZAF5kAbzYBXdogBcyAAwBfZmBCIAntEkBBAMIAVAJIB5AHLmAmgAUAotOShkyAD5zkBozVqHiI6SHxlagAaZGgMfUFYDAATNXYFSAAjfHhNDxAvX1l-Q3wg5PxQ-HDImLiEpNTkLngeAHM8ll1SJRJwDmQ6ZIUiHIAKLnEykqNYUmQePgERMQkY4n4ONTMrO0dXAEo5T2aAdz4iAAtkMY3+9gA6APwj2ROvImxJYPYqmsRqCp3l5BvhEAp4Ow5IplGpJhIHjCUABqTB9DgPeqJFLaYGfLDfCp-CIAoEFEFeOjgyHQ2BKVTNVb4RF05TIAC0yFsGWy8Fu6MeWMaB1x5K8FVIGAUglUwK8iEuFFOyHY+GVLngFD5Bx0Xk0oH13V6myhplZEm1x3JbE4KAA2vD8DFkuAsHFEFcALruAgbB4KAkEYajPlDEY5GKLfhCURTHUnKkQqFjYEAHgAfHLkGb6WpZI6WfTDRSvKnMgpEIgBhxTIJwEQANZSWRjI5SdPIF1u8RXMayZ7lSphEnRWLxbFNagAVmomhF6fZqYA9OXKxxM2KQWWK1WoTW643m63pB2u+7e-3SkEQsPamOGik1FO55p08jl6vdxuKcvv8h4yAmhAA
reduxhttps://github.com/reduxjs/redux
https://patch-diff.githubusercontent.com/Yogeui/react#useeffect--uselayouteffect
https://patch-diff.githubusercontent.com/Yogeui/react#useref
read-onlyhttps://github.com/DefinitelyTyped/DefinitelyTyped/blob/abd69803c1b710db58d511f4544ec1b70bc9077c/types/react/v16/index.d.ts#L1025-L1039
mutablehttps://github.com/DefinitelyTyped/DefinitelyTyped/blob/abd69803c1b710db58d511f4544ec1b70bc9077c/types/react/v16/index.d.ts#L1012-L1023
https://patch-diff.githubusercontent.com/Yogeui/react#option-1-dom-element-ref
To access a DOM elementhttps://reactjs.org/docs/refs-and-the-dom.html
lib.dom.tshttps://github.com/microsoft/TypeScript/blob/v3.9.5/lib/lib.dom.d.ts#L19224-L19343
https://user-images.githubusercontent.com/6764957/116914284-1c436380-ac7d-11eb-9150-f52c571c5f07.png
https://patch-diff.githubusercontent.com/Yogeui/react#option-2-mutable-value-ref
To have a mutable valuehttps://reactjs.org/docs/hooks-faq.html#is-there-something-like-instance-variables
https://patch-diff.githubusercontent.com/Yogeui/react#see-also
Related issue by @rajivpunjabihttps://github.com/typescript-cheatsheets/react/issues/388
Playgroundhttps://www.typescriptlang.org/play#code/JYWwDg9gTgLgBAKjgQwM5wEoFNkGN4BmUEIcARFDvmQNwCwAUI7hAHarwCCYYcAvHAAUASn4A+OAG9GjOHAD0CBLLnKGcxHABiwKBzgQwMYGxS4WUACbBWAczgwIcSxFwBXEFlYxkxtgDoVTQBJVmBjZAAbOAA3KLcsOAB3YEjogCNE1jc0-zgAGQBPG3tHOAAVQrAsAGVcKGAjOHTCuDdUErhWNgBabLSUVFQsWBNWA2qoX2hA9VU4AGFKXyx0AFk3H3TIxOwCOAB5dIArLHwgpHcoSm84MGJJmFbgdG74ZcsDVkjC2Y01f7yFQsdjvLAEACM-EwVBg-naWD2AB4ABLlNb5GpgZCsACiO083jEgn6kQAhMJ6HMQfpKJCFpE2IkBNg8HCEci0RisTj8VhCTBiaSKVSVIoAaoLnBQuFgFFYvFEikBpkujkMps4FgAB7VfCdLmY7F4gleOFwAByEHg7U63VYfXVg2Go1MhhG0ygf3mAHVUtF6jgYLtwUdTvguta4Bstjs9mGznCpVcbvB7u7YM90B8vj9vYgLkDqWxaeCAEzQ1n4eHDTnoo2801EknqykyObii5SmpnNifA5GMZmCzWOwOJwudwC3xjKUyiLROKRBLJf3NLJO9KanV64xj0koVifQ08k38s1Sv0DJZBxIx5DbRGhk6J5Nua5mu4PEZPOAvSNgsgnxsHmXZzIgRZyDSYIEAAzJWsI1k+BCovWp58gKcAAD5qmkQqtqKHbyCexoYRecw7IQugcAs76ptCdIQv4KZmoRcjyMRaGkU28A4aSKiUXAwwgpYtEfrcAh0mWzF0ax7bsZx3Lceetx8eqAlYPAMAABa6KJskSXAdKwTJ4kwGxCjyKy-bfK05SrDA8mWVagHAbZeScOY0CjqUE6uOgqDaRAOSfKqOYgb8KiMaZ9GSeCEIMkyMVyUwRHWYc7nSvAgUQEk6AjMQXpReWyWGdFLHeBZHEuTCQEZT8xVwaV8BxZCzUWZQMDvuMghBHASJVnCWhTLYApiH1chIqgxpGeCfCSIxAC+Yj3o+8YvvgSLyNNOLjeBGhTTNdLzVJy3reGMBbTtrB7RoB3XbNBAneCsHLatcbPhdV3GrdB1WYhw3IKNZq-W2DCLYRO7QPAljgsgORcDwVJAA
Example from Stefan Baumgartnerhttps://fettblog.eu/typescript-react/hooks/#useref
Playgroundhttps://www.typescriptlang.org/play/?jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgIilQ3wFgAoCzAVwDsNgJa4AVJADxgElaxqYA6sBgALAGIQ01AM4AhfjCYAKAJRwA3hThwA9DrjBaw4CgA2waUjgB3YSLi1qp0wBo4AI35wYSZ6wCeYEgAymhQwGDw1lYoRHCmEBAA1oYA5nCY0HAozAASLACyADI8fDAAoqZIIEi0MFpwaEzS8IZllXAAvIjEMAB0MkjImAA8+cWl-JXVtTAAfEqOzioA3A1NtC1wTPIwirQAwuZoSV1wql1zGg3aenAt4RgOTqaNIkgn0g5ISAAmcDJvBA3h9TsBMAZeFNXjl-lIoEQ6nAOBZ+jddPpPPAmGgrPDEfAUS1pG5hAYvhAITBAlZxiUoRUqjU6m5RIDhOi7iIUF9RFYaqIIP9MlJpABCOCAUHJ0eDzm1oXAAGSKyHtUx9fGzNSacjaPWq6Ea6gI2Z9EUyVRrXV6gC+DRtVu0RBgxuYSnRIzm6O06h0ACpIdlfr9jExSQyOkxTP5GjkPFZBv9bKIDYSmbNpH04ABNFD+CV+nR2636kby+BETCddTlyo27w0zr4HycfC6L0lvUjLH7baHY5Jas7BRMI7AE42uYSUXed6pkY6HtMDulnQruCrCg2oA
https://patch-diff.githubusercontent.com/Yogeui/react#useimperativehandle
Stackoverflow answerhttps://stackoverflow.com/a/69292925/5415299
https://patch-diff.githubusercontent.com/Yogeui/react#see-also-1
Using ForwardRefRenderFunctionhttps://stackoverflow.com/a/62258685/5415299
https://patch-diff.githubusercontent.com/Yogeui/react#custom-hooks
TS 3.4 const assertionshttps://devblogs.microsoft.com/typescript/announcing-typescript-3-4/#const-assertions
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play/?target=5&jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoCpAD0ljkwFcA7DYCZuRgZyQBkIKACbBmAcwAUASjgBvCnDhoO3eAG1g3AcNFiANHF4wAyjBQwkAXTgBeRMRgA6HklPmkEzCgA2vKQG4FJRV4b0EhWzgJFAAFHBBNJAAuODjcRIAeFGYATwA+GRs8uSDFIzcLCRgoRiQA0rgiGEYoTlj4xMdMUR9vHIlpW2Lys0qvXzr68kUAX0DpxqRm1rgNLXDdAzDhaxRuYOZVfzgAehO4UUwkKH21ACMICG9UZgMYHLAkCEw4baFrUSqVARb5RB5PF5wAA+cHen1BfykaksFBmQA
having trouble with const assertionshttps://github.com/babel/babel/issues/9800
https://patch-diff.githubusercontent.com/Yogeui/react#more-hooks--typescript-reading
https://medium.com/@jrwebdev/react-hooks-in-typescript-88fce7001d0dhttps://medium.com/@jrwebdev/react-hooks-in-typescript-88fce7001d0d
https://fettblog.eu/typescript-react/hooks/#userefhttps://fettblog.eu/typescript-react/hooks/#useref
https://patch-diff.githubusercontent.com/Yogeui/react#example-react-hooks--typescript-libraries
https://github.com/mweststrate/use-st8https://github.com/mweststrate/use-st8
https://github.com/palmerhq/the-platformhttps://github.com/palmerhq/the-platform
https://github.com/sw-yx/hookshttps://github.com/sw-yx/hooks
Something to add? File an issuehttps://github.com/typescript-cheatsheets/react/issues/new
https://patch-diff.githubusercontent.com/Yogeui/react#class-components
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play/?jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoCmATzCTgFlqAFHMAZzgF44BvCuHAD0QuAFd2wAHYBzOAANpMJFEzok8uME4oANuwhwIAawFwQSduxQykALjjsYUaTIDcFAL4fyNOo2oAZRgUZW4+MzQIMSkYBykxEAAjFTdhUV1gY3oYAAttLx80XRQrOABBMDA4JAAPZSkAE05kdBgAOgBhXEgpJFiAHiZWCA4AGgDg0KQAPgjyQSdphyYpsJ5+BcF0ozAYYAgpPUckKKa4FCkpCBD9w7hMaDgUmGUoOD96aUwVfrQkMyCKIxOJwAAMZm8ZiITRUAAoAJTzbZwIgwMRQKRwOGA7YDRrAABuM1xKN4eW07TAbHY7QsVhsSE8fAptKWynawNinlJcAGQgJxNxCJ8gh55E8QA
See commentary by @ferdaber herehttps://github.com/typescript-cheatsheets/react/issues/57
See PR and discussion!https://github.com/DefinitelyTyped/DefinitelyTyped/pull/26813
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play/?jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoCtAGxQGc64BBMMOJADxiQDsATRsnQwAdAGFckHrxgAeAN5wQSBigDmSAFxw6MKMB5q4AXwA0cRWggBXHjG09rIAEZIoJgHwWKcHTBTccAC8FnBWtvZwAAwmANw+cET8bgAUAJTe5L6+RDDWUDxwKQnZcLJ8wABucBA8YtTAaADWQfLpwV4wABbAdCIGaETKdikAjGnGHiWlFt29ImA4YH3KqhrGsz19ugFIIuF2xtO+sgD0FZVTWdlp8ddH1wNDMsFFKCCRji5uGUFe8tNTqc4A0mkg4HM6NNISI6EgYABlfzcFI7QJ-IoA66lA6RNF7XFwADUcHeMGmxjStwSxjuxiAA
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play/?jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoCtAGxQGc64BBMMOJADxiQDsATRsnQwAdAGFckHrxgAeAN4U4cEEgYoA5kgBccOjCjAeGgNwUAvgD44i8sshHuUXTwCuIAEZIoJuAHo-OGpgAGskOBgAC2A6JTg0SQhpHhgAEWA+AFkIVxSACgBKGzjlKJiRBxTvOABeOABmMzs4cziifm9C4ublIhhXKB44PJLlOFk+YAA3S1GxmzK6CpwwJdV1LXM4FH4F6KXKp1aesdk-SZnRgqblY-MgA
Something to add? File an issuehttps://github.com/typescript-cheatsheets/react/issues/new
https://patch-diff.githubusercontent.com/Yogeui/react#typing-getderivedstatefromprops
documentationhttps://reactjs.org/docs/react-component.html#static-getderivedstatefromprops
You Probably Don't Need Derived Statehttps://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play/?jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoUSWOYAZwFEBHAVxQBs5tcD2IATFHQAWAOnpJWHMuQowAnmCRwAwizoxcANQ4tlAXjgoAdvIDcFYMZhIomdMoAKOMHTgBvCnDhgXAQQAuVXVNEB12PQtyAF9La1t7NGUAESRMKyR+AGUYFBsPLzgIGGFbHLykADFgJHZ+II0oKwBzKNjyBSU4cvzDVPTjTJ7lADJEJBgWKGMAFUUkAB5OpAhMOBgoEzpMaBBnCFcZiGGAPijMFmMMYAhjdc3jbd39w+PcmwAKXwO6IJe6ACUBXI3iIk2mwO83joKAAbpkXoEfC46KJvmA-AAaOAAehxcBh8K40DgICQIAgwAAXnkbsZCt5+LZgPDsu8kEF0aj0X5CtE2hQ0OwhG4VLgwHAkAAPGzGfhuZDoGCiRxTJBi8C3JDWBb-bGnSFwNC3RosDDQL4ov4ooGeEFQugsJRQS0-AFRKHrYT0UQaCpwQx2z3eYqlKDDaq1epwABEAEYAEwAZhjmIZUNEmY2Wx2UD2KKOw1drgB6f5fMKfpgwDQcGaE1STVZEZw+Z+xd+cD1BPZQWGtvTwDWH3ozDY7A7aP82KrSF9cIR-gBQLBUzuxhY7HYHqhq4h2ceubbryLXPdFZiQA
https://patch-diff.githubusercontent.com/Yogeui/react#you-may-not-need-defaultprops
this tweethttps://twitter.com/dan_abramov/status/1133878326358171650
Original tweethttps://twitter.com/hswolff/status/1133759319571345408
this articlehttps://medium.com/@matanbobi/react-defaultprops-is-dying-whos-the-contender-443c19d9e7f1
https://patch-diff.githubusercontent.com/Yogeui/react#typing-defaultprops
TypeScript 3.0+https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-0.html
some edge cases are still problematichttps://github.com/typescript-cheatsheets/react/issues/61
See this in TS Playgroundhttps://www.typescriptlang.org/play#code/JYWwDg9gTgLgBAKjgQwM5wEoFNkGN4BmUEIcARFDvmQNwBQdMAnmFnAOKVYwAKxY6ALxwA3igDmWAFxwAdgFcQAIyxQ4AXzgAyOM1YQCcACZYCyeQBte-VPVwRZqeCbOXrEAXGEi6cCdLgAJgBGABo6dXo6e0d4TixuLzgACjAbGXjuPg9UAEovAD5RXzhKGHkoWTgAHiNgADcCkTScgDpkSTgAeiQFZVVELvVqrrrGiPpMmFaXcytsz2FZtwXbOiA
a couple ways to do ithttps://github.com/typescript-cheatsheets/react/pull/103#issuecomment-481061483
GreetProps is the internal contract for your component, not the external, consumer facing contracthttps://github.com/typescript-cheatsheets/react/issues/66#issuecomment-453878710
https://patch-diff.githubusercontent.com/Yogeui/react#consuming-props-of-a-component-with-defaultprops
https://patch-diff.githubusercontent.com/Yogeui/react#problem-statement
https://patch-diff.githubusercontent.com/Yogeui/react#solution
See this in TS Playgroundhttps://www.typescriptlang.org/play#code/JYWwDg9gTgLgBAKjgQwM5wEoFNkGN4BmUEIcARFDvmQNwBQdMAnmFnAMImQB2W3MABWJhUAHgAqAPjgBeOOLhYAHjD4ATdNjwwAdJ3ARe-cSyyjg3AlihwB0gD6Yqu-Tz4xzl67cl04cAH44ACkAZQANHQAZYAAjKGQoJgBZZG5kAHMsNQBBGBgoOIBXVTFxABofPzgALjheADdrejoLVSgCPDYASSEIETgAb2r0kCw61AKLDPoAXzpcQ0m4NSxOooAbQWF0OWH-TPG4ACYAVnK6WfpF7mWAcUosGFdDd1k4AApB+uQxysO4LM6r0dnAAGRwZisCAEFZrZCbbb9VAASlk0g+1VEamADUkgwABgAJLAbDYQSogJg-MZwYDoAAkg1GWFmlSZh1mBNmogA9Di8XQUfQHlgni8jLpVustn0BnJpQjZTsWrzeXANsh2gwbstxFhJhK3nIPmAdnUjfw5WIoVgYXBReKuK9+JI0TJpPs4JQYEUoNw4KIABYARjgvN8VwYargADkIIooMQoAslvBSe8JAbns7JTSsDIyAQIBAyOHJDQgA
https://patch-diff.githubusercontent.com/Yogeui/react#misc-discussions-and-knowledge
https://medium.com/@martin_hotell/10-typescript-pro-tips-patterns-with-or-without-react-5799488d6680https://medium.com/@martin_hotell/10-typescript-pro-tips-patterns-with-or-without-react-5799488d6680
DefinitelyTyped/DefinitelyTyped#30695https://github.com/DefinitelyTyped/DefinitelyTyped/issues/30695
typescript-cheatsheets#87https://github.com/typescript-cheatsheets/react/issues/87
See commentary by @ferdaber herehttps://github.com/typescript-cheatsheets/react/issues/57
herehttps://github.com/typescript-cheatsheets/react/issues/61
Something to add? File an issuehttps://github.com/typescript-cheatsheets/react/issues/new
https://patch-diff.githubusercontent.com/Yogeui/react#typing-component-props
https://patch-diff.githubusercontent.com/Yogeui/react#basic-prop-types-examples
https://patch-diff.githubusercontent.com/Yogeui/react#object-as-the-non-primitive-type
https://patch-diff.githubusercontent.com/Yogeui/react#empty-interface--and-object
Using these types is a common source of misunderstanding and is not recommendedhttps://typescript-eslint.io/rules/no-empty-interface/
https://patch-diff.githubusercontent.com/Yogeui/react#useful-react-prop-type-examples
React 18 type updateshttps://github.com/DefinitelyTyped/DefinitelyTyped/pull/56210
Thanks @pomle for raising this.https://github.com/typescript-cheatsheets/react/issues/357
@ferdaberhttps://github.com/typescript-cheatsheets/react/issues/57
More discussion: Where ReactNode does not overlap with JSX.Elementhttps://github.com/typescript-cheatsheets/react/issues/129
Something to add? File an issuehttps://github.com/typescript-cheatsheets/react/issues/new
https://patch-diff.githubusercontent.com/Yogeui/react#types-or-interfaces
https://patch-diff.githubusercontent.com/Yogeui/react#tldr
ortahttps://twitter.com/orta/status/1356129195835973632?s=20
https://patch-diff.githubusercontent.com/Yogeui/react#more-advice
Interface vs Type alias in TypeScript 2.7https://medium.com/@martin_hotell/interface-vs-type-alias-in-typescript-2-7-2a8f1777af4c
Differences Between Type Aliases and Interfaceshttps://www.typescriptlang.org/docs/handbook/2/everyday-types.html#differences-between-type-aliases-and-interfaces
see official Microsoft notes on thishttps://github.com/microsoft/TypeScript/wiki/Performance#preferring-interfaces-over-intersections
take this with a grain of salthttps://news.ycombinator.com/item?id=25201887
https://patch-diff.githubusercontent.com/Yogeui/react#useful-table-for-types-vs-interfaces
Karol Majewskihttps://twitter.com/karoljmajewski/status/1082413696075382785
Something to add? File an issuehttps://github.com/typescript-cheatsheets/react/issues/new
https://patch-diff.githubusercontent.com/Yogeui/react#getderivedstatefromprops
documentationhttps://reactjs.org/docs/react-component.html#static-getderivedstatefromprops
You Probably Don't Need Derived Statehttps://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play/?jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoUSWOYAZwFEBHAVxQBs5tcD2IATFHQAWAOnpJWHMuQowAnmCRwAwizoxcANQ4tlAXjgoAdvIDcFYMZhIomdMoAKOMHTgBvCnDhgXAQQAuVXVNEB12PQtyAF9La1t7NGUAESRMKyR+AGUYFBsPLzgIGGFbHLykADFgJHZ+II0oKwBzKNjyBSU4cvzDVPTjTJ7lADJEJBgWKGMAFUUkAB5OpAhMOBgoEzpMaBBnCFcZiGGAPijMFmMMYAhjdc3jbd39w+PcmwAKXwO6IJe6ACUBXI3iIk2mwO83joKAAbpkXoEfC46KJvmA-AAaOAAehxcBh8K40DgICQIAgwAAXnkbsZCt5+LZgPDsu8kEF0aj0X5CtE2hQ0OwhG4VLgwHAkAAPGzGfhuZDoGCiRxTJBi8C3JDWBb-bGnSFwNC3RosDDQL4ov4ooGeEFQugsJRQS0-AFRKHrYT0UQaCpwQx2z3eYqlKDDaq1epwABEAEYAEwAZhjmIZUNEmY2Wx2UD2KKOw1drgB6f5fMKfpgwDQcGaE1STVZEZw+Z+xd+cD1BPZQWGtvTwDWH3ozDY7A7aP82KrSF9cIR-gBQLBUzuxhY7HYHqhq4h2ceubbryLXPdFZiQA
https://patch-diff.githubusercontent.com/Yogeui/react#forms-and-events
type inference and contextual typinghttps://www.typescriptlang.org/docs/handbook/type-inference.html#contextual-typing
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play/?jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoCtAGxQGc64BBMMOJADxiQDsATRsnQwAdAGFckHrxgAeCnDgBvAL4AaBcs2KA9Drg8IcMDjB1tcblwBccOjCjAeAcwDcmlRQB8W8ovso3HAAvL6KilYwtgBE0R7ulH5wepYAnmBOznAQPIgAkgDiABIAKnAAFij8dsB8SNmYIZo5YpUu9aEAFEi2QhgiAGLQIACiAG4ysqUAsgAyeTxgAK4wI9RIIDJeAJS2YxC1IT5KFjDlwHQidEgwAMowgUidSpacUewiaEtQRDwwJSgoM4biIxihqEt6iptglFCpYXBfnUoJ1tmFwkQYN9cp0LIpZHxgGMvHjwrInMt4DB0khgtFItE4GCIbSlGcLlcHtwRJEVNkeK0qsDgmzzpcWm1gXydCSkuE4LIdITiRYYR4KCogA
See our Github PR for morehttps://github.com/typescript-cheatsheets/react/pull/24
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play/?jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoCtCAOwGctoRlM4BeRYmAOgFc6kLABQBKClVoM4AMSbs4o9gD4FFOHAA8mJmrhFMbAN7aozJJgC+u2gGVeAIxDAYRoUgBcndDxsBPGjAAFkgwwGgAogBuSAEiynCGuupI3GBE0QEAIuYovAA2MKIA3Elw1PTwMChQAOYh8ilVtfUodHAwvmBIEKyN1XXwAGQJpckgKMB5noZwkSh5vB5wDFDANDVwFiXk6rtwYK10AO7QACbTs-OLnitrG1ulDzu75VJI45PyTQPc7xN53DmCyQRTgAHowe1Okg0ME0ABrOgAQlKr3gBzoxzOX36IVShxOUFOgKuIPBkI6XVhMMRKOe6ghcBCaG4rN0Fis5CUug0p2AkW59M0eRQ9iQeUFe3U4Q+U1GmjWYF4lWhbAARH9Jmq4DQUCAkOrNXltWDJbsNGCRWKJTywXyBTz7Wb1BoreLnbsAAoEs7ueUaRXKqFddUYrFE7W6-Whn0R8Eei1um3PC1Ox38hOBlUhtV0BxOGDaoGLdUAGQgGzWJrNqYzFAtJhAgpEQA
you should use Formikhttps://jaredpalmer.com/formik
React Hook Formhttps://react-hook-form.com/
https://patch-diff.githubusercontent.com/Yogeui/react#list-of-event-types
microsoft/TypeScript#29441https://github.com/microsoft/TypeScript/issues/29441
https://developer.mozilla.org/en-US/docs/Web/API/InputEventhttps://developer.mozilla.org/en-US/docs/Web/API/InputEvent
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_eventhttps://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event
https://patch-diff.githubusercontent.com/Yogeui/react#context
https://patch-diff.githubusercontent.com/Yogeui/react#basic-example
https://patch-diff.githubusercontent.com/Yogeui/react#without-default-context-value
https://patch-diff.githubusercontent.com/Yogeui/react#type-assertion-as-an-alternative
https://patch-diff.githubusercontent.com/Yogeui/react#forwardrefcreateref
Hooks sectionhttps://github.com/typescript-cheatsheets/react/blob/main/README.md#hooks
on purposehttps://github.com/DefinitelyTyped/DefinitelyTyped/pull/43265/
ComponentPropsWithRefhttps://github.com/DefinitelyTyped/DefinitelyTyped/blob/a05cc538a42243c632f054e42eab483ebf1560ab/types/react/index.d.ts#L770
https://patch-diff.githubusercontent.com/Yogeui/react#generic-forwardrefs
https://fettblog.eu/typescript-react-generic-forward-refs/https://fettblog.eu/typescript-react-generic-forward-refs/
https://patch-diff.githubusercontent.com/Yogeui/react#option-1---wrapper-component
https://patch-diff.githubusercontent.com/Yogeui/react#option-2---redeclare-forwardref
https://patch-diff.githubusercontent.com/Yogeui/react#more-info
https://medium.com/@martin_hotell/react-refs-with-typescript-a32d56c4d315https://medium.com/@martin_hotell/react-refs-with-typescript-a32d56c4d315
Conditional Rendering with forwardRefhttps://github.com/typescript-cheatsheets/react/issues/167
Something to add? File an issuehttps://github.com/typescript-cheatsheets/react/issues/new
https://patch-diff.githubusercontent.com/Yogeui/react#portals
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play/?jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoUSWRYmAEQHkBZObXAo9GAWgBNcZchTQQAdgGd4ICHxQAbBBAjwAvHAFoAriCRiYAOgDmSGAFF5SXfoBCATwCSfABQAiGXPk8cK1wEo4FAk4AAkAFWYAGQsrPRgAbgoAeiTAiQkdYDEjOCy4OwgtKDgACxgQeTZgS1KgwI1gADc4AHdgGBLcvgIPBW9lGHxE4XIkAA9qeDR5IODmWQU4cZg9PmDkbgMAYVxIMTi4AG8KOCX5AC5QiOjLazUNCG07gzQuFZi7tz4m-2GTuFE4HEcXowD48y0+mcAWO5FOp16igGBhQYDAqy2JWqLg6wAkBiQ8j8w1OAF8KP9AXs4gB1aryACqYhkkJg0KO-wRCyRKgMRBkjSQmOxzlx+MJxP+5JGpyIYj4SCg7Nh8LgRBgRTEtG4TGYLzeSAACtAYApRVj8WAcGB8WgsfI+HKADRwMUEokkuDS0lAA
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play#code/JYWwDg9gTgLgBAJQKYEMDGMA0cDecCuAzkgKIBmZSG2RSyZ2y6MAchACZJwC+cZUEEHADkUVBmEBYAFChIsXHDRiUMJAAVoMFABsefAUNHiYAWnaCp0mQHobcFIUL4QwAHYBzOO7gBPCPhQcAAWMCB6ZMA6XMGODnDswABucADuwDDB3uwiIBy6pgIQMMIA3DJoEG6E8HnsuggQxXAAvAkQaC5IbjAAdACO+EhQvgDKSNEY0AAUAEQAxHUFRTCzAJQOhHAAEgAqALIAMiTRIN0w5dbSML5gXPv5OuoCYFttODJwSsFR7GJuAC5ECY2JxLtxLjIyPg3BhgFU4A96jppng0D8dH9ujwgUjdM8IK8Nh9pF87EoVGoEsk4BMkGcenAqjpfEzYVwiO4vGIyJ8lFUarSdPRWgRiPQADx7I4AEWSJ3p5zgAB84G58DodAA+abqzVrS5fYBkODTACEE3ovU6UH+MA2lqQZGtgTtoosnQZfWUqDUCq9c0SSXWkNJYtIFCoMGm0w2LS1uD5X0q1XgE1FjudNrtZtKcHJbiqpj1ekcxFg8LccAARlQULRvPB0pq1UgksMa1wS0m4EthU0+igwHc3OwAMIY9jTCYGntiGCBKux1oJklfde9x6NYq9MR5dsT37TnSzsNfCF87jYADaAF1T3z54uKb6NFpdNN0b9-thMy7becp7cDIIHSOSRAoB4SCgdCsIwJWcAAILDsua78qmcDXoQwQQKkeI6NgxAwKMOF4Y8t6ikwGC9LQozaGo0xkLoxCnl8T5QEuPYSkGWo9mS9j+PgSgoFWzEQHAYD4PAmTAFsPiCUENSqMAaAhGEERRNBZ7rtxNLAOwLSzH2hQDrMWoSjYPF8bg2G4fhcAAGQOaa1lfBK+G8dpG5uUGrneTUvjRC0OBod5YXUoQYA6CgvhArMHhQPpsyYH5YVRegSAAJJqCAhBxWg5zDMlqXecESDAB4oRxQAjAADLVSTBMVXnhV86TsJkQLCHVDXBMIKUta11boAA1glASjnFUAeMN0y1Zg82Lb01VrM1rVhQAXplo5IAAHkCACcB0Det67cMBg3rp5p1fJlwhCCgm7ImaOCzHAswXTdcAStWUkwAiAVBSFw1oGNAgwuwcVgEOvgoKkPxgB9vBVGOOgqSNwXLvGcBESRdmPIxzFIGs3BamgOgQMQFm-TA-1uNd60WVZl0WR51kk9ZP1-QiKNo6DmNxgmuOkfh0wwFAQwk1qtmpIijzU9z9PWeSYiChAJoKQ4w5cZZyQM2sMjcEAA
Event Bubbling Through Portalhttps://reactjs.org/docs/portals.html#event-bubbling-through-portals
https://patch-diff.githubusercontent.com/Yogeui/react#error-boundaries
https://patch-diff.githubusercontent.com/Yogeui/react#option-1-using-react-error-boundary
React-error-boundaryhttps://github.com/bvaughn/react-error-boundary
https://patch-diff.githubusercontent.com/Yogeui/react#options-2-writing-your-custom-error-boundary-component
Something to add? File an issuehttps://github.com/typescript-cheatsheets/react/issues/new
https://patch-diff.githubusercontent.com/Yogeui/react#concurrent-reactreact-suspense
https://github.com/sw-yx/fresh-async-reacthttps://github.com/sw-yx/fresh-async-react
Something to add? File an issuehttps://github.com/typescript-cheatsheets/react/issues/new
https://patch-diff.githubusercontent.com/Yogeui/react#troubleshooting-handbook-types
the TypeScript FAQhttps://github.com/microsoft/TypeScript/wiki/FAQ
https://patch-diff.githubusercontent.com/Yogeui/react#union-types-and-type-guarding
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play/?jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoCtAGxQGc64BBMMOJADxiQDsATRsnQwAdAGFckHrxgAeCnDgBvAL4AaBcs2K0EAK48YALjg89IAEZIocAD6m91agG44AejdxqwANZI4MAAWwHSaKhQAfFrkinQwKNxwALzRijr6hiZmTmHOmkT81gAUAJSpaUQwelA8cLJ8wABucBA8Yt5oPklKpclRQSEiwDxoRCAyRQCMJSoRSgN0InEJSCK6BjAqsm4NjRF5MXDhh8OjSOOGyXBFKCDGDpbWZUlRStoBwYt0SDAAyvHcIrLRIva5vQ5pODrTLXYGraHwWz2AAMZQA1HBbjB3ioSiUDooVAcVEA
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play/?jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoC4AOxiSk3STgEEATEGuAbwrjhwAbJAC44AZxhQaAcwDcFAL5Va9RmmYBVcfR584SECmCCxk6dXlKKFTAFdqGYBGoCIdugBUI7TtQAKKDJIABTiwDLUwJjA9ACUeuT80XBhEVExugC8OQR2OlAIEML4CbxJ-AJIMHZQrvi+NGQVinDWlOT2jjDOrjgeSN4AErhIgcFpkdGxUGX6KZMZM3A5WQSGxoKliZVVNXUEIyBIYEFIzfzK5FcUAPS3cACy1QAWEGxwAIxi+cwABjQ-nAANZIACeAHdoGxbA4nC4qmxgEQMCFflAxI1XAAfODaeI7ODREIAIiESBJRNc6LKcHucF+cBgL3+gLgEDA9BQMGgcEwvJgYM5MjsKCgbHEEhoGjgngAynAAEwAOgA7ABqfT8fpeHwcGjjULo5XkuIKFoGQQ6Qna9y6o5jM5ogrKjYmM36K43cj057M95KsRofI8vCCzlwEVitgAGjgbAgSElzOY4hQxyZL1kVPZgjYunlcAAbvRwi5JbyISyiHAAdQgcBxLQDNR3DIXrDur0ieIsc76Jj9Ti8QU4j8Cj3WEPCUR9q5+1A4ChJShqGC4ibiswAIS5Bz5mLUJAw65AA
User-Defined Type Guardshttps://www.typescriptlang.org/docs/handbook/advanced-types.html#user-defined-type-guards
Discriminated Unionshttps://www.typescriptlang.org/docs/handbook/advanced-types.html#discriminated-unions
Basarat's writeuphttps://basarat.gitbook.io/typescript/type-system/discriminated-unions
https://patch-diff.githubusercontent.com/Yogeui/react#optional-types
File an issuehttps://github.com/typescript-cheatsheets/react/issues/new
https://patch-diff.githubusercontent.com/Yogeui/react#enum-types
documented issueshttps://fettblog.eu/tidy-typescript-avoid-enums/
agreeshttps://twitter.com/orta/status/1348966323271987201?s=20
https://patch-diff.githubusercontent.com/Yogeui/react#type-assertion
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play/?jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoCmATzCTgGU61gUAbAWSQGduUBzJABVa9ALwFuMKMAB2-fAG4KFOTCRRM6egAUcYbnADeFOHBA8+ggFxwpM+XAA+cAK6yAJkkxykH5eQAvirkaBCyUnAAwriQskiyMABMtsjoMAB0AGJRADx6EAYAfHASABRG5pYCSIEAlKUlZaZwuR7AAG5FLWa5ABYAjEVGFrw1gbkA9IPd5L2T7V0UdSFobCi8cBzUMeDhCfBIAB7qnoZpGBm7cQe5JnNVYzZ20nL8AYEl92ZEnhplDW+ZjgYQi8Eqoys9ECpTgMD6wG4GTA+m4AWBcCIMFcUFkcGaDwxuWu+0SSUeULEI2qgjgG0YzFYnBpwlEn2pT1qUxJ8TJswxdXRcGCQSAA
https://patch-diff.githubusercontent.com/Yogeui/react#simulating-nominal-types
type brandinghttps://basarat.gitbook.io/typescript/main-1/nominaltyping
See this PRhttps://github.com/microsoft/TypeScript/pull/33038
https://patch-diff.githubusercontent.com/Yogeui/react#intersection-types
herehttps://www.typescriptlang.org/play?ssl=4&ssc=1&pln=12&pc=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoCipAD0ljmADsYkpN0k4AFKUFKAE8AQgFcYMCE14QwAZzgBvCnDgAbFACMkagFxw5MPkwDmAbgoBfanWjw0Uwzz4gBI8ZKZwAvHAAUKnBgOPL6vPxCYhJSMvJwAGSIxDAAdFGeABIAKgCyADIAghJ8muJIcgA82fnpUgCiakggSCwAfBQAlD6tSoEA9H1wACYQcGiihrhwpdFMggYwopiYgUSLUF4VM55KKXvBsnKWPYoH8ika2mqWcBV921KtFuSWQA
View in the TypeScript Playgroundhttps://www.typescriptlang.org/play/?jsx=2#code/JYWwDg9gTgLgBAJQKYEMDG8BmUIjgcilQ3wFgAoCmATzCTgCEUBnJABRzGbgF44BvCnGFoANi2YA5FCCQB+AFxxmMKMAB2AcwA0Q4Suqj5S5OhgA6AMIBlaxwh1YwJMz1x1MpEpVqtcAPT+cACurAAmcBpwAEYQMAAWFAC+VLT0ACIQmvZcvAJ6MCjAosyWEMHqMErqwSDRSFDJqXRwABK1KOo53HyC5MLxnWGl5ZXVtfWN5CnkSAAekLBwaBDqKm0d6ibEFgBilgA8TKzdcABkGyCd3QB8eQAUAJS8d-d6B2HAAG4BNxSPFAo80W8BWa3gmU02zM5n2RxY7E43AukNuD2ePFe70+P38f3IjyAA
https://patch-diff.githubusercontent.com/Yogeui/react#union-types
commentary on Union Types usecaseshttps://github.com/typescript-cheatsheets/react/blob/main/README.md#union-types-and-type-guarding
https://patch-diff.githubusercontent.com/Yogeui/react#overloading-function-types
Read more about Overloading in the Handbook.https://www.typescriptlang.org/docs/handbook/functions.html#overloads
https://patch-diff.githubusercontent.com/Yogeui/react#using-inferred-types
https://patch-diff.githubusercontent.com/Yogeui/react#using-partial-types
subtle pitfalls of the above example herehttps://twitter.com/ferdaber/status/1084798596027957248
why @types/react uses Pick instead of Partialhttps://github.com/DefinitelyTyped/DefinitelyTyped/issues/18365
https://patch-diff.githubusercontent.com/Yogeui/react#the-types-i-need-werent-exported
ComponentPropsWithoutRefhttps://github.com/DefinitelyTyped/DefinitelyTyped/blob/a05cc538a42243c632f054e42eab483ebf1560ab/types/react/index.d.ts#L774
ComponentPropsWithRefhttps://github.com/DefinitelyTyped/DefinitelyTyped/blob/a05cc538a42243c632f054e42eab483ebf1560ab/types/react/index.d.ts#L770
see this blogpost from Ivan Koshelevhttp://ikoshelev.azurewebsites.net/search/id/11/Pragmatic-uses-of-TypeScript-type-system-My-type-of-type
this examplehttps://twitter.com/mgechev/status/1211030455224422401?s=20
also has a good video on inferhttps://www.youtube.com/watch?v=ijK-1R-LFII&list=PLYvdvJlnTOjF6aJsWWAt7kZRJvzw-en8B&index=3&t=0s
https://patch-diff.githubusercontent.com/Yogeui/react#the-types-i-need-dont-exist
DefinitelyTypedhttps://github.com/DefinitelyTyped/DefinitelyTyped
TypeSearchhttps://microsoft.github.io/TypeSearch/
https://patch-diff.githubusercontent.com/Yogeui/react#slapping-any-on-everything
https://patch-diff.githubusercontent.com/Yogeui/react#autogenerate-types
dts-genhttps://github.com/Microsoft/dts-gen
our MIGRATION cheatsheethttps://react-typescript-cheatsheet.netlify.app/docs/migration/from_js
https://patch-diff.githubusercontent.com/Yogeui/react#typing-exported-hooks
useDarkMode hookhttps://github.com/donavon/use-dark-mode
https://patch-diff.githubusercontent.com/Yogeui/react#typing-exported-components
sw-yx's Gist on React Router 6 typeshttps://gist.github.com/sw-yx/37a6a3d248c2d4031801f0d568904df8
posthttps://templecoding.com/blog/2016/03/31/creating-typescript-typings-for-existing-react-components
https://patch-diff.githubusercontent.com/Yogeui/react#frequent-known-problems-with-typescript
https://patch-diff.githubusercontent.com/Yogeui/react#typescript-doesnt-narrow-after-an-object-element-null-check
https://mobile.twitter.com/tannerlinsley/status/1390409931627499523
https://mobile.twitter.com/tannerlinsley/status/1390409931627499523https://mobile.twitter.com/tannerlinsley/status/1390409931627499523
microsoft/TypeScript#9998https://github.com/microsoft/TypeScript/issues/9998
https://patch-diff.githubusercontent.com/Yogeui/react#typescript-doesnt-let-you-restrict-the-type-of-children
https://twitter.com/ryanflorence/status/1085745787982700544?s=20https://twitter.com/ryanflorence/status/1085745787982700544?s=20
https://patch-diff.githubusercontent.com/Yogeui/react#troubleshooting-handbook-operators
Some misconceptions herehttps://twitter.com/SeaRyanC/status/1418678670739218438?s=20
https://artsy.github.io/blog/2018/11/21/conditional-types-in-typescript/https://artsy.github.io/blog/2018/11/21/conditional-types-in-typescript/
https://github.com/sw-yx/ts-spec/blob/master/conditional-types.mdhttps://github.com/sw-yx/ts-spec/blob/master/conditional-types.md
https://www.youtube.com/watch?v=SbVgPQDealg&list=PLYvdvJlnTOjF6aJsWWAt7kZRJvzw-en8B&index=2&t=0shttps://www.youtube.com/watch?v=SbVgPQDealg&list=PLYvdvJlnTOjF6aJsWWAt7kZRJvzw-en8B&index=2&t=0s
Generics, Conditional types and Mapped typeshttps://www.youtube.com/watch?v=PJjeHzvi_VQ&feature=youtu.be
https://patch-diff.githubusercontent.com/Yogeui/react#troubleshooting-handbook-utilities
see source in es5.d.tshttps://github.com/microsoft/TypeScript/blob/33a34e5b96bfe086266f4765ab9789a2a02507f9/src/lib/es5.d.ts#L1523-L1637
https://patch-diff.githubusercontent.com/Yogeui/react#troubleshooting-handbook-tsconfigjson
all the Compiler options in the TypeScript docshttps://www.typescriptlang.org/docs/handbook/compiler-options.html
The new TS docs also has per-flag annotations of what each doeshttps://www.typescriptlang.org/tsconfig#allowSyntheticDefaultImports
recommended TS config herehttps://github.com/tsconfig/bases
Project Referenceshttps://www.typescriptlang.org/docs/handbook/project-references.html
ADVANCEDhttps://react-typescript-cheatsheet.netlify.app/docs/advanced
https://patch-diff.githubusercontent.com/Yogeui/react#troubleshooting-handbook-fixing-bugs-in-official-typings
Thanks to @adamrackis for the tip.https://twitter.com/AdamRackis/status/1024827730452520963
declaration merginghttps://www.typescriptlang.org/docs/handbook/declaration-merging.html
ambient module declarationhttps://www.typescriptlang.org/docs/handbook/namespaces-and-modules.html#pitfalls-of-namespaces-and-modules
https://patch-diff.githubusercontent.com/Yogeui/react#troubleshooting-handbook-globals-images-and-other-non-ts-files
declaration merginghttps://www.typescriptlang.org/docs/handbook/declaration-merging.html
microsoft/TypeScript-React-Starter#12https://github.com/microsoft/TypeScript-React-Starter/issues/12
StackOverflowhttps://stackoverflow.com/a/49715468/4216035
https://patch-diff.githubusercontent.com/Yogeui/react#editor-tooling-and-integration
https://github.com/sw-yx/swyx-react-typescript-snippetshttps://github.com/sw-yx/swyx-react-typescript-snippets
https://marketplace.visualstudio.com/items?itemName=auiworks.amvimhttps://marketplace.visualstudio.com/items?itemName=auiworks.amvim
https://github.com/Quramy/tsuquyomihttps://github.com/Quramy/tsuquyomi
https://github.com/leafgarland/typescript-vimhttps://github.com/leafgarland/typescript-vim
https://github.com/neoclide/coc.nvimhttps://github.com/neoclide/coc.nvim
https://mobile.twitter.com/ryanflorence/status/1085715595994095620https://mobile.twitter.com/ryanflorence/status/1085715595994095620
https://user-images.githubusercontent.com/6764957/53868378-2b51fc80-3fb3-11e9-9cee-0277efe8a927.png
jsx-tsx-logoshttps://github.com/Protectator/jsx-tsx-logos
https://github.com/Protectator/jsx-tsx-logos/raw/master/example.png
https://patch-diff.githubusercontent.com/Yogeui/react#linting
TSLint is now in maintenance and you should try to use ESLint insteadhttps://medium.com/palantir/tslint-in-2019-1a144c2317a9
@azdanovhttps://github.com/typescript-cheatsheets/react/pull/14
You can convert TSlint to ESlint with this toolhttps://github.com/typescript-eslint/tslint-to-eslint-config
work has recently begun on typescript-eslint in the ESLint communityhttps://eslint.org/blog/2019/01/future-typescript-eslint
https://github.com/typescript-eslint/typescript-eslinthttps://github.com/typescript-eslint/typescript-eslint
the tsdx PRhttps://github.com/palmerhq/tsdx/pull/70/files
fuller TypeScript + ESLint setup guide herehttps://blog.matterhorn.dev/posts/learn-typescript-linting-part-1/
https://github.com/MatterhornDev/learn-typescript-lintinghttps://github.com/MatterhornDev/learn-typescript-linting
"Using ESLint and Prettier in a TypeScript Project"https://dev.to/robertcoopercode/using-eslint-and-prettier-in-a-typescript-project-53jb
TypeScript support for his eslint+prettier config.https://github.com/wesbos/eslint-config-wesbos/issues/68
Prettierhttps://github.com/typescript-cheatsheets/react/blob/main/docs/advanced/misc-concerns.md#prettier
https://patch-diff.githubusercontent.com/Yogeui/react#other-react--typescript-resources
https://twitter.com/swyxhttps://twitter.com/swyx
https://www.freecodecamp.org/news/how-to-build-a-todo-app-with-react-typescript-nodejs-and-mongodb/https://www.freecodecamp.org/news/how-to-build-a-todo-app-with-react-typescript-nodejs-and-mongodb/
https://github.com/piotrwitek/react-redux-typescript-guidehttps://github.com/piotrwitek/react-redux-typescript-guide
10 Bad TypeScript Habitshttps://startup-cto.net/10-bad-typescript-habits-to-break-this-year/
Ultimate React Component Patterns with TypeScript 2.8https://levelup.gitconnected.com/ultimate-react-component-patterns-with-typescript-2-8-82990c516935
Basarat's TypeScript gitbook has a React sectionhttps://basarat.gitbook.io/typescript/tsx/react
Egghead.io coursehttps://egghead.io/courses/use-typescript-to-develop-react-applications
Palmer Group's TypeScript + React Guidelineshttps://github.com/palmerhq/typescript
disco.chathttps://github.com/jaredpalmer/disco.chat
Sindre Sorhus' TypeScript Style Guidehttps://github.com/sindresorhus/typescript-definition-style-guide
TypeScript React Starter Template by Microsofthttps://github.com/Microsoft/TypeScript-React-Starter
Steve Kinney's React and TypeScript course on Frontend Masters (paid)https://frontendmasters.com/courses/react-typescript/
Brian Holt's Intermediate React course on Frontend Masters (paid)https://frontendmasters.com/courses/intermediate-react/converting-the-app-to-typescript/
Mike North's Production TypeScript course on Frontend Masters (paid)https://frontendmasters.com/courses/production-typescript/
TSX Guidehttps://jenil.github.io/chota/
gojutinhttps://github.com/gojutin/www.tsx.guide
Lyft's React-To-TypeScript conversion CLIhttps://github.com/lyft/react-javascript-to-typescript-transform
Gustav Wengel's blogpost - converting a React codebase to TypeScripthttp://www.gustavwengel.dk/converting-typescript-to-javascript-part-1
Microsoft React TypeScript conversion guidehttps://github.com/Microsoft/TypeScript-React-Conversion-Guide#typescript-react-conversion-guide
Matt Pocock's Beginner's Typescript Tutorialhttps://github.com/total-typescript/beginners-typescript-tutorial
You?https://github.com/typescript-cheatsheets/react/issues/new
https://patch-diff.githubusercontent.com/Yogeui/react#recommended-react--typescript-talks
Ultimate React Component Patterns with TypeScripthttps://www.youtube.com/watch?v=_PBQ3if6Fmg
https://patch-diff.githubusercontent.com/Yogeui/react#time-to-really-learn-typescript
the playground'shttp://www.typescriptlang.org/play/index.html
https://www.youtube.com/watch?v=ET4kT88JRXshttps://www.youtube.com/watch?v=ET4kT88JRXs
https://blog.mariusschulz.com/series/typescript-evolutionhttps://blog.mariusschulz.com/series/typescript-evolution
Egghead.io coursehttps://egghead.io/courses/advanced-static-types-in-typescript
https://basarat.gitbook.io/typescript/https://basarat.gitbook.io/typescript/
Tackling TypeScripthttps://exploringjs.com/tackling-ts/
Egghead.io coursehttps://egghead.io/courses/practical-advanced-typescript
Generics, Conditional types and Mapped typeshttps://www.youtube.com/watch?v=PJjeHzvi_VQ&feature=youtu.be
TypeScript for Beginner Programmershttps://ts.chibicode.com/
TypeScript Error Guidehttps://github.com/threehams/typescript-error-guide/
https://patch-diff.githubusercontent.com/Yogeui/react#example-app
Create React App TypeScript Todo Example 2021https://github.com/laststance/create-react-app-typescript-todo-example-2021
Ben Awad's 14 hour Fullstack React/GraphQL/TypeScript Tutorialhttps://www.youtube.com/watch?v=I6ypD7qv3Z8
Cypress Realworld Apphttps://github.com/cypress-io/cypress-realworld-app
https://patch-diff.githubusercontent.com/Yogeui/react#my-question-isnt-answered-here
File an issuehttps://github.com/typescript-cheatsheets/react-typescript-cheatsheet/issues/new
https://patch-diff.githubusercontent.com/Yogeui/react#contributors
all-contributorshttps://github.com/all-contributors/all-contributors
CONTRIBUTORS.mdhttps://patch-diff.githubusercontent.com/Yogeui/react/blob/main/CONTRIBUTORS.md
react-typescript-cheatsheet.netlify.apphttps://react-typescript-cheatsheet.netlify.app
react-learning https://patch-diff.githubusercontent.com/topics/react-learning
Readme https://patch-diff.githubusercontent.com/Yogeui/react#readme-ov-file
MIT license https://patch-diff.githubusercontent.com/Yogeui/react#MIT-1-ov-file
Please reload this pagehttps://patch-diff.githubusercontent.com/Yogeui/react
Activityhttps://patch-diff.githubusercontent.com/Yogeui/react/activity
1 starhttps://patch-diff.githubusercontent.com/Yogeui/react/stargazers
0 watchinghttps://patch-diff.githubusercontent.com/Yogeui/react/watchers
0 forkshttps://patch-diff.githubusercontent.com/Yogeui/react/forks
Report repository https://patch-diff.githubusercontent.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2FYogeui%2Freact&report=Yogeui+%28user%29
Releaseshttps://patch-diff.githubusercontent.com/Yogeui/react/releases
Packages 0https://patch-diff.githubusercontent.com/users/Yogeui/packages?repo_name=react
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.