TypeScript is a language very much in the growth phase of its life. It will pay off in big projects with many contributors, despite following overheads rated from low to high effort:
TypeScript exposes hundreds of compiler options, it seems flexible to machine but intimidating to human. Most developers will copy recommended configs somewhere, understand some common options and call it a day.
You can always go back to check tsconfig reference when something doesn’t work as expected.
Pretty sure you’ll bring your OOP knowledge from previous statically typed language like Java to TypeScript, but be aware following differences:
TypeScript uses the type any whenever it can’t tell what the type of an expression should be. To take advantages of type system, you’ll need type declarations literally everywhere including your own codes and 3rd-party libraries.
As consumer, best to use packages written in TypeScript or included declaration files. Otherwise, downloading the corresponding
@types package from DefinitelyTyped, type declaration packages should always have the same name as the package name on npm, but prefixed with