|
3 | 3 |  |
4 | 4 |
|
5 | 5 | This repository serves as an interactive guide to TypeScript. |
6 | | -It contains written guides in the form of README.md files, as well as code examples in the form of `.ts` files. |
| 6 | + |
| 7 | +It is built using Docusaurus. |
| 8 | + |
| 9 | +## Features |
| 10 | + |
| 11 | +- Interactive examples with solutions |
| 12 | + - Progress saved locally |
| 13 | +- Explanation of TypeScript concepts from the ground up |
| 14 | +- Best practices for using TypeScript |
7 | 15 |
|
8 | 16 | ## Prerequisites |
9 | 17 |
|
10 | 18 | This course assumes that you have: |
11 | 19 |
|
12 | 20 | - Proficiency with JavaScript (or minimally any other language) |
13 | 21 |
|
14 | | -Good to have: |
15 | | - |
16 | | -- Some experience with TypeScript |
17 | | -- VS Code installed |
18 | | - |
19 | | -## Setup |
20 | | - |
21 | | -```sh |
22 | | -npm install # Install ESLint and TypeScript for type-checking in hands-on exercises. |
23 | | -``` |
24 | | - |
25 | | -We will be using [Visual Studio Code](https://code.visualstudio.com/) with the following extensions: |
26 | | - |
27 | | -- [Twoslash Query Comments](https://marketplace.visualstudio.com/items?itemName=Orta.vscode-twoslash-queries) - To show inline type previews |
28 | | -- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - To show linting errors |
29 | | -- [Markdown Preview Enhanced](https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced) - To preview markdown files |
30 | | - |
31 | | - |
32 | | -## Table of Contents |
33 | | - |
34 | | -- Basics |
35 | | - 1. [Introduction to TypeScript](./chapters/1-basics/0-introduction-to-typescript/README.md) |
36 | | - 1. [Type annotations](./chapters/1-basics/1-type-annotations/README.md) |
37 | | - 1. [Inferred types](./chapters/1-basics/2-inferred-types/README.md) |
38 | | - 1. [Overriding inferred types](./chapters/1-basics/3-overriding-inferred-types/README.md) |
39 | | - 1. [Type aliases](./chapters/1-basics/4-type-aliases/README.md) |
40 | | - 1. [Object types and interfaces](./chapters/1-basics/5-object-types-and-interfaces/README.md) |
41 | | - 1. [Optional properties and types](./chapters/1-basics/6-optional-properties-and-types/README.md) |
42 | | - 1. [Union and literal types](./chapters/1-basics/7-union-and-literal-types/README.md) |
43 | | - 1. [Type assertions](./chapters/1-basics/8-type-assertions/README.md) |
44 | | - 1. [Type guards](./chapters/1-basics/9-type-guards/README.md) |
45 | | - 1. [Arrays, records and tuples](./chapters/1-basics/10-arrays-records-tuples/README.md) |
46 | | - 1. [Classes](./chapters/1-basics/11-classes/README.md) |
47 | | - 1. [Readonly types as const](./chapters/1-basics/12-readonly-types-as-const/README.md) |
48 | | - |
49 | | -- Intermediate |
50 | | - 1. [Unknown vs any](./chapters/2-intermediate-concepts/1-unknown-any/README.md) |
51 | | - 1. [Intersection types](./chapters/2-intermediate-concepts/2-intersection-types/README.md) |
52 | | - 1. [Exclude types using Omit and Exclude](./chapters/2-intermediate-concepts/3-exclude-types-omit-exclude/README.md) |
53 | | - 1. [Null, undefined, void and never](./chapters/2-intermediate-concepts/4-null-undefined-void-never/README.md) |
54 | | - 1. [Variable types and typeof](./chapters/2-intermediate-concepts/5-variable-types-typeof/README.md) |
55 | | - 1. [Variable keys and keyof](./chapters/2-intermediate-concepts/6-variable-keys-keyof/README.md) |
56 | | - 1. [Satisfies keyword](./chapters/2-intermediate-concepts/7-satisfies/README.md) |
57 | | - 1. [As vs type annotations vs satisfies](./chapters/2-intermediate-concepts/8-as-vs-type-annotations-vs-satisfies/README.md) |
58 | | - 1. [Discriminated unions](./chapters/2-intermediate-concepts/9-discriminated-unions/README.md) |
59 | | - |
60 | | -- Advanced concepts |
61 | | - 1. [Index types](./chapters/3-advanced-concepts/1-index-types/README.md) |
62 | | - 1. [Function overloading](./chapters/3-advanced-concepts/2-function-overloading/README.md) |
63 | | - 1. [Generic types](./chapters/3-advanced-concepts/3-generic-types/README.md) |
64 | | - 1. [Conditional types](./chapters/3-advanced-concepts/4-conditional-types/README.md) |
65 | | - 1. [Distributive conditional types](./chapters/3-advanced-concepts/5-distributive-conditional-types/README.md) |
66 | | - 1. [Template literal types](./chapters/3-advanced-concepts/6-template-literal-types/README.md) |
67 | | - 1. [Mapped types](./chapters/3-advanced-concepts/7-mapped-types/README.md) |
68 | | - 1. [Infer in conditional types](./chapters/3-advanced-concepts/8-infer-in-conditional-types/README.md) |
69 | | - 1. [Declaration merging](./chapters/3-advanced-concepts/9-declaration-merging/README.md) |
| 22 | +## Getting started |
| 23 | + |
| 24 | +To get started with TypeScript from Zero, access the online guide [here](https://jeffsieu.com/typescript-from-zero). |
70 | 25 |
|
71 | 26 | ## Expectations |
72 | 27 |
|
73 | 28 | ### What this course is |
74 | 29 |
|
75 | 30 | - A guide to TypeScript syntax and best practices when using TypeScript in your codebase |
| 31 | +- An interactive learning experience with practical examples |
76 | 32 |
|
77 | 33 | ### What this course is not |
78 | 34 |
|
|
0 commit comments