TypeScript is typed JavaScript. TypeScript adds types to JavaScript to help you speed up the development by catching errors before you even run the JavaScript code.
TypeScript is an open-source programming language that builds on top of JavaScript. It works on any web browser, any OS, and any environment that JavaScript runs.
In this TypeScript tutorial, you’ll learn:
- Why TypeScript offers a lot of benefits over vanilla JavaScript.
- Understand what TypeScript truly is and how it works under the hood.
- Use TypeScript and its rich features like Types, Classes, Interfaces, Modules, and more.
Prerequisites
To follow the tutorial, you need to have:
- Basic JavaScript knowledge. If you want to learn JavaScript, check out the JavaScript Tutorial.
- ECMAScript 2015 or ES6 knowledge.
Section 1. Getting Started #
- What is TypeScript – learn about what typescript is and its advantages over vanilla JavaScript.
- Setting up the TypeScript development environment – show you how to set up a TypeScript development environment to be more productive in TypeScript.
- TypeScript Hello World – walk you through the steps to create the first program in TypeScript called
Hello, World! - Why TypeScript – clearly understand why you should use TypeScript.
Section 2. Basic Types #
- Type Annotation – learn how to use type annotation to define the static type for variables, function parameters, and return values.
- Type Inference – explain where and how TypeScript infers types of variables.
- Number – learn about the numeric types including floating-point numbers and big integers.
- String – show you how to use the string type in TypeScript.
- Boolean – guide you on the boolean type and how to use it effectively.
- Object Type – introduce you to the object type that represents non-primitive values.
- Array – show you how to use an array and its operations.
- Tuple – learn how to store a fixed number of elements with known types in a tuple.
- Enum – show you how to define a group of named constants using the enum type.
- Any Type – learn how to use the
anytype to store a value of any type in a variable. - Unknown Type – show you how to create a variable that can hold a value of any type but require type checking before use.
- Void type – show you how to use the void type as the return type of functions that do not return any value.
- Never Type – learn how to use the
nevertype that contains no value. - Union Types – guide you on how to store a value of one or several types in a variable with the union type.
- String Literal Types – learn to define a type that accepts only a specified string literal.
- Type Aliases – show you how to define new names for types using type aliases.
Section 3. Control Flow Statements #
The following tutorials refresh your control flow statement knowledge. If you are already familiar with these statements in JavaScript, please skip this section.
- if…else – learn how to execute code based on a condition.
- switch..case – show you how to use the switch statement to allow some of the possible execution paths.
- for – create a loop that executes a specified number of times.
- while – create a pretest loop that executes as long as a condition is true.
- do…while – learn how to create a posttest loop that executes until a condition is false.
- break – show you how to use the break statement to terminate a loop or a switch.
- continue – learn how to skip to the end of a loop and continue to the next iteration.
Section 4. Functions #
- Functions – learn how to declare a function that uses type annotation in TypeScript.
- Function types – guide you on how to use function types to define types for functions.
- Optional Parameters – show you how to define functions with optional parameters.
- Default Parameters – introduce you to default parameters.
- Rest Parameters – use the rest parameters to handle an infinite number of arguments of a function.
- Function overloadings – learn how to establish between parameter types and results of a function via function overloadings.
Section 5. Classes #
- Classes – learn how to construct a class in TypeScript.
- Access Modifiers – introduce you to private, protected, and public access modifiers.
- The readonly Modifier – learn how to use the
readonlymodifier to make class properties immutable. - Getters & Setters – show you how to use the getters and setters to control the access of the class properties.
- Inheritance – learn how to use the inheritance to reuse the functionality of another class.
- Static methods & properties – define static methods and variables shared by all instances of a class.
- Abstract Classes – explain the abstract classes that define some common behaviors.
Section 6. Interfaces #
- Interfaces – introduce you to interfaces and how to use them for creating contracts within your code.
- Extending Interfaces – learn how to extend an interface to create a combination of interfaces.
- Interfaces vs. Abstract Classes – explain the differences between interfaces and abstract classes.
Section 7. Advanced Types #
- Intersection Types – show you how to create a new type that has all the features of existing types.
- Type Guards – learn how to use type guards to narrow the type of a variable within a conditional block.
- Type Assertions – guide you on using a type assertion to tell the compiler to treat a value as a specified type.
Section 8. Generics #
- Introduction to TypeScript Generics – learn how to use TypeScript generics to develop generic functions.
- Generic constraints – show you how to add constraints to the generic types.
- Generic Classes – guide you on how to develop generic classes.
- Generic Interfaces – walk you through the steps for creating generic interfaces.
Section 9. Modules #
- TypeScript Modules – introduce you to modules in TypeScript and how to use them in other modules.
Section 10. Setting up TypeScript tools #
- Node.js TypeScript – how to set up a development environment for using TypeScript in the Node.js project.
- TypeScript Vite – set up a web project that uses TypeScript and Vite to compile the TypeScript into JavaScript.