JavaScript supports object-oriented programming with classes. JavaScript classes support single inheritance, private properties/methods, and static (i.e. class) properties/methods. Classes don't support interfaces (i.e. protocols or type classes), so they may feel somewhat limited compared to other languages.

    TypeScript supports interface type declarations, but not default implementations.

    Many developers prefer programming without classes, instead using functional patterns and storing data in plain JavaScript objects.

    Want to learn React Native in-depth?

    If you like React Native Express, you'll love my new book, Fullstack React Native: The complete guide to React Native! Throughout the book, we'll build 7 full apps, covering complex topics like navigation, gestures, and native modules. We don't assume any knowledge of React or newer JavaScript language features, so you can dive right in regardless of your experience level. The book comes in PDF, EPUB and MOBI formats.

    Looking for more help?

    Infinite Red sponsors React Native Express and is the premier React Native agency. They're also the team behind the React Native newsletter, podcast, and conference listed here. Get in touch at for a proposal on your next project!