TypeScript is good for when creating projects that many people are going to contribute or libraries that many people are going to use, but for big/small one-man-show projects is such a waste of time writing all the typings and if you have enabled ESLint with some standard defaults, then you'll find yourself wasting countless minutes trying to satisfy TS compiler and linter especially when trying to convert JS code to TS and of course keep tsconfig options to strict typings mode.
TypeScript is awesome for DX and when many people are involved in one project but for larger projects it's going to bloat the code and it doesn't provide much on bug catching; proper testing should always be present in all projects small or big ones, and that's what prevents bugs mostly.
There is even a ESLint rule for requiring PropTypes when optional props do not have default values react/require-default-props and it does appear in TS projects as well and it actually makes sense.