Git Product home page Git Product logo

typescript-challenge's Introduction

header

Millie's GitHub stats
Top Langs

My tech stacks

HTML5 CSS3 JavaScript TypeScript React SASS Webpack


I'm currently learning...

React Query Vite React Native


My life motto

while (doubt || worry) {
  exercise();
  if (tired) break;
  sweatItOut();
}

Hits

Footer

typescript-challenge's People

Contributors

jaypedia avatar

Watchers

 avatar

typescript-challenge's Issues

Read `Learning TypeScript`

Description

  • Learning TypeScript ์ฑ…์„ ์ฝ๊ณ , TypeScript์— ๋Œ€ํ•œ ํ†ต์ฐฐ๋ ฅ์„ ๋งŒ๋“ค๊ณ  ๊ธฐ์ดˆ๋ฅผ ํ™•๋ฆฝํ•œ๋‹ค.
  • ๊ฐ ์ฑ•ํ„ฐ๋ณ„ ์ฝ์€ ํ›„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์š”์•ฝ ํ˜น์€ ์†Œ๊ฐ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ๋Š”๋‹ค.

Progress

1. Concepts

  • 1. From JavaScript to TypeScript
  • 2. The Type System
  • 3. Unions and Literals
  • 4. Objects

2. Features

  • 5. Functions
  • 6. Arrays
  • 7. Interfaces
  • 8. Classes
  • 9. Type Modifiers
  • 10. Generics

3. Usage

  • 11. Declaration Files
  • 12. Using IDE Features
  • 13. Configuration Options

4. Extra Credit

  • 14. Syntax Extensions
  • 15. Type Operations

Configuring JSDoc with a configuration file

Description

  • configuration file์„ ๋งŒ๋“ค๋ฉด JSDoc์˜ ๋™์ž‘์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋‘ ๊ฐ€์ง€ ํ˜•์‹์œผ๋กœ ํŒŒ์ผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
    • A JSON file
    • A CommonJS module that exports a single configuration object
  • JSDoc์„ configuration file๊ณผ ํ•จ๊ป˜ ์‹คํ–‰ํ•˜๋ ค๋ฉด command line option์œผ๋กœ -c๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

Default configuration options

  • configuration file์„ ๋งŒ๋“ค์ง€ ์•Š์œผ๋ฉด JSDoc์€ ๋‹ค์Œ configuration option์„ ์‚ฌ์šฉํ•œ๋‹ค.
{
    "plugins": [], // ํ”Œ๋Ÿฌ๊ทธ์ธ ๋กœ๋“œํ•˜์ง€ ์•Š์Œ
    "recurseDepth": 10, // -r command-line flag๋กœ ์žฌ๊ท€๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ, JSDoc์€ 10๋ ˆ๋ฒจ ๊นŠ์ด์˜ ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•จ
    "source": {
        "includePattern": ".+\\.js(doc|x)?$", // .js, .jsdoc, .jsx๋กœ ๋๋‚˜๋Š” ํŒŒ์ผ๋งŒ ์ฒ˜๋ฆฌ๋จ 
        "excludePattern": "(^|\\/|\\\\)_" // _๋กœ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ _๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์€ ๋ฌด์‹œ๋จ
    },
    "sourceType": "module", // JSDoc์€ 2015 ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ง€์›ํ•จ 
    "tags": {
        "allowUnknownTags": true, // ์ธ์‹ํ•  ์ˆ˜ ์—†๋Š” ํƒœ๊ทธ(unrecognized tag)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ 
        "dictionaries": ["jsdoc","closure"] // standard JSDoc tags, Closure Compiler tags๊ฐ€ ๋ชจ๋‘ ํ™œ์„ฑํ™”๋จ 
    },
    "templates": {
        "cleverLinks": false, // Inline {@link} ํƒœ๊ทธ๋Š” ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ๋ Œ๋”๋ง๋จ 
        "monospaceLinks": false  // Inline {@link} ํƒœ๊ทธ๋Š” ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ๋ Œ๋”๋ง๋จ 
    }
}

Markdown plugin

  • JSDoc์—๋Š” Markdown ํ˜•์‹์˜ ํ…์ŠคํŠธ๋ฅผ HTML๋กœ ์ž๋™ ๋ณ€ํ™˜ํ•˜๋Š” Markdown plugin์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ์ฆ‰, Markdown ํ˜•์‹์œผ๋กœ ์ฃผ์„์„ ์ž‘์„ฑํ•˜๋ฉด ํ•ด๋‹น Markdown์ด ์ ์šฉ๋˜์–ด ๋ฌธ์„œ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
  • JSDoc 3.2.2 ์ด์ƒ์—์„œ Markdown plugin์€ marked Markdown parser๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

source

  • ๋‹ค์Œ๊ณผ ๊ฐ™์ด source ์˜ต์…˜์„ ๊ตฌ์„ฑํ•˜์˜€๋‹ค.
  "source": {
    "include": ["src/"], // src ํ•˜์œ„์— ์žˆ๋Š” ํŒŒ์ผ๋งŒ ์ฒ˜๋ฆฌ
    "includePattern": ".js(x)?$", // .js, .jsx๋กœ ๋๋‚˜๋Š” ํŒŒ์ผ๋งŒ ์ฒ˜๋ฆฌ
    "excludePattern": "^(node_modules|docs)" // node_modules๋‚˜ docs๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์€ ๋ฌด์‹œ๋จ
  },

Reference

Assignment 3. Implement other's modeling

Description

  • ๋‹ค๋ฅธ ์ˆ˜๊ฐ•์ƒ์ด ์„ค๊ณ„ํ•˜๊ณ  ๋ชจ๋ธ๋ง์„ ํ•œ TypeScript Interface์— ๋”ฐ๋ผ todo list๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.
  • ๋™์ž‘์ด ๋˜์ง€ ์•Š๋”๋ผ๋„ ์„ค๊ณ„ ๋ฐ ๋ชจ๋ธ๋ง์„ ์ง€ํ‚ค๋Š” ๊ฒƒ์„ ์›์น™์œผ๋กœ ํ•œ๋‹ค. ๋™์ž‘์ด ๋˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์„ค๊ณ„์™€ ๋ชจ๋ธ๋ง์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๊ตฌํ˜„ ํ›„, ์–ด๋–ค ๋ถ€๋ถ„์„ ๊ณ ์น˜๋ฉด ์ข‹์„์ง€์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฌธ์„œํ™”ํ•œ๋‹ค.
  • ์™„์„ฑ๋œ ๊ณผ์ œ์˜ ์ €์žฅ์†Œ ๋งํฌ๋ฅผ ๋””์Šค์ฝ”๋“œ/ํ”„๋ก ํŠธ์—”๋“œ ์ฑŒ๋ฆฐ์ง€/์ž์œ ๋กœ์šด-์ด์•ผ๊ธฐ ์ฑ„๋„์— ์ œ์ถœํ•œ๋‹ค.

Review lessons

Description

  • 1ํšŒ์ฐจ๋ถ€ํ„ฐ 4ํšŒ์ฐจ๊นŒ์ง€์˜ ์ˆ˜์—…์„ ๋ณต์Šต ๋ฐ ์ •๋ฆฌํ•˜์—ฌ TypeScript์— ๋Œ€ํ•œ ์ดํ•ด๋„๋ฅผ ๋†’์ด๊ธฐ

Progress

  • 1ํšŒ์ฐจ ๋ณต์Šต ์ •๋ฆฌ
  • 2ํšŒ์ฐจ ๋ณต์Šต ์ •๋ฆฌ
  • 3ํšŒ์ฐจ ๋ณต์Šต ์ •๋ฆฌ
  • 4ํšŒ์ฐจ ๋ณต์Šต ์ •๋ฆฌ

Assignment 1. JSDoc ํ™œ์šฉ ๋ฐ ๋ฐฐํฌ

Description

  • ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋ชจ๋ธ๋งํ•œ๋‹ค.
  • ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ํ•จ์ˆ˜ ๋ฐ ํด๋ž˜์Šค์˜ ์„ ์–ธ๋ถ€๋งŒ ๋งŒ๋“ค๊ณ , ๋‚ด๋ถ€๋Š” ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • JSDoc์„ ํ™œ์šฉํ•ด ๋ฌธ์„œํ™”ํ•œ๋‹ค.
  • GitHub Pages๋ฅผ ํ™œ์šฉํ•ด JSDoc ์ •์  ํŽ˜์ด์ง€๋ฅผ ๋ฐฐํฌํ•œ๋‹ค.

Requirements

Todo

Todo {
  ์•„์ด๋””(required),
  ๋‚ด์šฉ(required),
  ์™„๋ฃŒ์—ฌ๋ถ€(required),
  ์นดํ…Œ๊ณ ๋ฆฌ(required),
  ํƒœ๊ทธ๋“ค(optional),
}

CREATE

  • ํ•  ์ผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋‚ด์šฉ์—†์ด ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๋‹ค.

READ

  • ๋ชจ๋“  ํ•  ์ผ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ID๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํŠน์ • ํ•  ์ผ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

UPDATE

  • ID๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์†์„ฑ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํŠน์ • ํ•  ์ผ์˜ ํŠน์ • ํƒœ๊ทธ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

DELETE

  • ID๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํŠน์ • ํ•  ์ผ์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ชจ๋“  ํ•  ์ผ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํŠน์ • ํ•  ์ผ์˜ ํŠน์ • ํƒœ๊ทธ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํŠน์ • ํ•  ์ผ์˜ ๋ชจ๋“  ํƒœ๊ทธ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.

Modeling (Shape)

Item {
  property(required),
  property(optional),
}

Assignment 4. TypeScript Exercises

Description

  • TypeScript Exercises ์‚ฌ์ดํŠธ์—์„œ ์ตœ์†Œ 9๋‹จ๊ณ„๊นŒ์ง€ ํ•ด๊ฒฐํ•˜๊ธฐ
  • ๋‹จ๊ณ„๋ณ„๋กœ ํƒ€์ž… ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ์ด์œ , ํ•ด๊ฒฐํ•œ ์ฝ”๋“œ, ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜๊ธฐ
  • ์›ํ‹ฐ๋“œ ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ ๋””์Šค์ฝ”๋“œ ์ฑ„๋„์— ๊ณต์œ 

Assignment 2. Use TypeScript Interface

Description

  • JSDoc์œผ๋กœ ์„ ์–ธํ–ˆ๋˜ ๊ฒƒ์„ TypeScript์˜ Interface๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ชจ๋ธ๋งํ•˜๊ธฐ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.