Directory structure:
└── dogyeong-understanding-typescript/
├── README.md
├── app.js
├── app.ts
├── index.html
├── package.json
├── tsconfig.json
├── webpack.config.js
├── exercise-01-drag-drop-ESModule/
│ ├── app.css
│ ├── app.ts
│ ├── index.html
│ ├── tsconfig.json
│ ├── components/
│ │ ├── base-component.ts
│ │ ├── project-input.ts
│ │ ├── project-item.ts
│ │ └── project-list.ts
│ ├── decorators/
│ │ └── autobind-decorator.ts
│ ├── models/
│ │ ├── drag-drop.ts
│ │ └── project.ts
│ ├── state/
│ │ └── project-state.ts
│ └── util/
│ └── validation.ts
├── exercise-01-drag-drop-ESModule-webpack/
│ ├── app.css
│ ├── app.ts
│ ├── index.html
│ ├── package.json
│ ├── tsconfig.json
│ ├── webpack.config.js
│ ├── webpack.config.production.js
│ └── src/
│ ├── components/
│ │ ├── base-component.ts
│ │ ├── project-input.ts
│ │ ├── project-item.ts
│ │ └── project-list.ts
│ ├── decorators/
│ │ └── autobind-decorator.ts
│ ├── models/
│ │ ├── drag-drop.ts
│ │ └── project.ts
│ ├── state/
│ │ └── project-state.ts
│ └── util/
│ └── validation.ts
├── exercise-01-drag-drop-namespace/
│ ├── app.css
│ ├── app.ts
│ ├── bundle.js
│ ├── index.html
│ ├── tsconfig.json
│ ├── components/
│ │ ├── base-component.ts
│ │ ├── project-input.ts
│ │ ├── project-item.ts
│ │ └── project-list.ts
│ ├── decorators/
│ │ └── autobind-decorator.ts
│ ├── models/
│ │ ├── drag-drop.ts
│ │ └── project.ts
│ ├── state/
│ │ └── project-state.ts
│ └── util/
│ └── validation.ts
├── exercise-02-select-share-app/
│ ├── app.css
│ ├── index.html
│ ├── package.json
│ ├── tsconfig.json
│ ├── webpack.config.js
│ ├── webpack.config.production.js
│ └── src/
│ └── app.ts
├── exercise-03-react-ts/
│ ├── README.md
│ ├── package.json
│ ├── tsconfig.json
│ ├── public/
│ │ ├── index.html
│ │ ├── manifest.json
│ │ └── robots.txt
│ └── src/
│ ├── App.tsx
│ ├── index.css
│ ├── index.tsx
│ ├── react-app-env.d.ts
│ ├── setupTests.ts
│ ├── todo.model.ts
│ └── components/
│ ├── NewTodo.css
│ ├── NewTodo.tsx
│ ├── TodoList.css
│ └── TodoList.tsx
├── exercise-04-express-ts/
│ ├── package.json
│ ├── tsconfig.json
│ └── src/
│ ├── app.ts
│ ├── controllers/
│ │ └── todos.ts
│ ├── models/
│ │ └── todos.ts
│ └── routes/
│ └── todos.ts
└── notes/
├── 01-basics.md
├── 02-objs-arrays-enums.md
├── 03-union-aliases.md
├── 04-functions.md
├── 05-unknown-never.md
├── 06-configuration.md
├── 07-classes.md
├── 08-advanced-types.md
├── 09-generics.md
├── 10-decorators.md
├── 11-modules-namespaces.md
├── 12-webpack.md
└── 13-libraries.md