Skip to content
This repository has been archived by the owner on Jul 16, 2023. It is now read-only.

Latest commit

 

History

History
91 lines (83 loc) · 6.43 KB

README.md

File metadata and controls

91 lines (83 loc) · 6.43 KB

Typescript Practice Repo Typescript Practice

Repository created to record my practice learning React with exercises based on the Udemy Course of Maximilian Schwarzmüller.

Table of contents

Status

  • Current repo's version is Typescript practice version
  • This course has been completed on 28/12/2022 - Certificate

Why it has not any updated dependencies?

After finishing its related Udemy course, I archive this repository and unarchive it when I start a new training and add a link in the Other practice repos section referring to its new repo. But I don't update any associated dependency due to technology changes during the years between each practice, and the produced code which works with the mentioned requirements.

Requirements

  • Node v16.13.2 or above

Setup

After cloning the repo, go to the created folder and install the node packages.

git clone https://github.com/NicolasOmar/typescript-practice.git
cd typescript-practice
npm run setup-all

setup-all is the command to install all the projects, but if you want to do it one by one, you can change that last line for one of the following:

App Setup Command
All npm run setup-all
Basics npm run setup-basics
Configs npm run setup-configs
Classes, Interfaces & Types npm run setup-classes
Generics & Decorators npm run setup-generics
Practice Demo #1 npm run setup-drag-and-drop
Practice Demo #2 npm run setup-select-and-share
React & Node npm run setup-react-and-node

How to run it

To run any specific exercise, execute the following command in the project´s folder:

npm start

Repo structure & what i learned in each exercise

  • Basics (1-basics folder)
    • Create, code and compile a .ts file into javascript
    • Understanding of Core Types like number, string, boolean, array and object
    • Understanding of Tuples, Enums, Union and Literal/Custom Types
    • Understanding of void, undefined, unknown and never Types
  • Configs (2-configs folder)
    • Adding watch mode to mantain updated changes and check possible errors before hand
    • Create a typescript configuration file with tsc --init and tweak for a custom config
    • Understand how Typescript compiles ES6+ code (like let/const, arrow functions, default function parameters, spread operator and destructuring)
  • Classes, Interfaces & Types (3-classes-interfaces-types folder)
    • Basic understanding of Classes creation with its properties and methods
    • Know difference between a public, private and protected properties
    • Basic understanding of class inheritance
    • How to use getters and setters
    • How to use static methods
    • Basic understanding of Interfaces and its implementation on Classes and other Interfaces
    • Understanding and implementation of Intersection Types, Type Guards, Discriminated Unions, Type Casting and Function Overloads
  • Generics & Decorators (4-generics-decorators folder)
    • Basic understanding og Generic Types
    • How to use multiple generic types in a function
    • Understanding and implementation of extends and keyof
    • Understanding and implementation of utitlies like Partial and Readonly
    • Basic understanding of Decorators
    • How to implement an template creation and setting by using a Decorator Factory
    • Ways of implement decorators such as Properties, Set, Methods and Parameters
  • Practice Demo #1 (5-drag-and-drop folder)
    • Review of all concepts mentioned above
    • Understanding and implementation a Drag and Drop event (from one point to the other)
    • How to split code using namespaces and solve its possible problems with ES6 modules
    • Basic understanding and implementation of Webpack (configuration for development and production environments)
  • Practice Demo #2 (6-select-and-share folder)
    • Use Google GeoCoding API to get information from places
    • Use Axios to make API calls
    • How to use Javascript-based libraries in Typescript by using @types/[LIBRARY_NAME] (in this case, using googlemaps types)
  • React & Node (7-react-and-node folder)
    • How to create a React project with Typescript installed using create-react-app
    • How to use React features such as useState, functional components and props with TS
    • How to compile work with Typescript in Node with tsc and nodemon
    • How to use Express features such as Routes and Resquests with TS

Other practice repos

Node Angular GraphQL React HTML & CSS
Node Practice Repo Angular Practice Repo GraphQL Practice Repo React Practice Repo HTML and CSS Practice Repo