🟦 [TypeScript] νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ‹œμž‘ν•˜κΈ°

μ΄μ§€ν™˜Β·2022λ…„ 3μ›” 16일

TypeScript

λͺ©λ‘ 보기
2/3
post-thumbnail

πŸ’‘ λ“€μ–΄κ°€κΈ° μ•žμ„œ

  • ν•΄λ‹Ή λ‚΄μš©μ€ μ½”λ”©μ• ν”Œμ˜ λΉ λ₯΄κ²Œ λ§ˆμŠ€ν„°ν•˜λŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό 기반으둜 μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
  • κΈ°λ°˜μ€ μ½”λ”©μ• ν”Œμ˜ κ°•μ˜μ§€λ§Œ ν”„λ‘ νŠΈ κ΅¬ν˜„μ΄ μ•„λ‹Œ μ„œλ²„ κ΅¬ν˜„μ„ μœ„ν•΄ μΆ”κ°€λ‘œ ꡬ글링 ν•œ 자료λ₯Ό μ •λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

πŸ“Œμ„€μΉ˜ μˆœμ„œ

  1. NodeJS μ„€μΉ˜ν•˜κΈ°
  2. ν„°λ―Έλ„μ—μ„œ npm을 μ΄μš©ν•˜μ—¬ κΈ€λ‘œλ²Œλ‘œ typescipt μ„€μΉ˜ν•˜κΈ°.
    teminal_install_typescript
  3. μž‘μ—…ν•  ν”„λ‘œμ νŠΈ 폴더 생성 ν›„ μž‘μ—…ν΄λ”λ‘œ μ΄λ™ν•˜κΈ°.
  4. tsconfig.json 파일 μƒμ„±ν•˜κ³ , μ›ν•˜λŠ” μ˜΅μ…˜ λ„£κΈ°.
  5. μž‘μ„±ν•œ μ½”λ“œ(.ts)λ₯Ό μ»΄νŒŒμΌν•˜κΈ°(.js)
    • typescript둜 μž‘μ„±ν•œ μ½”λ“œλŠ” 결과적으둜 js파일둜 μ»΄νŒŒμΌν•΄μ•Ό μ‹€ν–‰μ‹œν‚¬ 수 μžˆλ‹€.
    • tsw -wλ₯Ό μ‚¬μš©ν•˜λ©΄ ν˜„μž¬ 폴더에 js파일둜 μ»΄νŒŒμΌν•˜μ—¬ μ €μž₯ν•΄ μ€€λ‹€.
  6. 컴파일된 νŒŒμΌμ„ node file.js둜 μ‹€ν–‰ν•  수 μžˆλ‹€.

πŸ“ŒTS μ‚¬μš©λ²•

// 선언방식 λ³€μˆ˜λͺ…: λ³€μˆ˜νƒ€μž… = κ°’;
const name: type = value;
// ν•¨μˆ˜ μ„ μ–Έ : ν•¨μˆ˜λͺ…(νŒŒλΌλ―Έν„°:νƒ€μž…):λ¦¬ν„΄νƒ€μž…{...}
function sum(n1: number, n2: number): number {
  return n1 + n2;
}

πŸ“ŒTS μ‚¬μš©μ˜ˆμ‹œ

class Person {
  myName: string;
  myLastName: string;
  myHeight: number;
  myWeight: number;
  constructor() {
    this.myName = "jihwan";
    this.myLastName = "lee";
    this.myHeight = 180;
    this.myWeight = 75;
  }
  getBmi = (): number => this.myWeight / (this.myHeight / 100) ** 2;
}

let jihwan = new Person();
jihwan.myName = 1004 // error : 'number' ν˜•μ‹μ€ 'string' ν˜•μ‹μ— ν• λ‹Ήν•  수 μ—†μŠ΅λ‹ˆλ‹€.
console.log(jihwan.getBmi()); // => 23.148

🎈이런 μ‹μœΌλ‘œ κ°„νŽΈν•˜κ²Œ μ‚¬μš©ν•  수 있으며 λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ JS의 νŽΈλ¦¬ν•¨μ„ 살짝 ν¬κΈ°ν•˜κ³  μ½”λ“œμ˜ 직관성과 사전에 μ—λŸ¬λ₯Ό μž‘μ•„μ€€λ‹€λŠ” 큰 이점을 κ°€μ Έμ˜¨λ‹€. 'μž‘μ€κ²ƒμ„ 버리고 큰 것을 μ–»μŒ' 그리고 제일 큰 이점은 μ—­μ‹œ λ‚΄κ°€μ•„λ‹Œ λ‹€λ₯Έ κ°œλ°œμžκ°€ λ‚˜μ˜ μ½”λ“œλ₯Ό λ³Ό λ•Œ μ½”λ“œλ₯Ό νŒŒμ•…ν•˜λŠ”λ° λ“€μ–΄κ°€λŠ” μ‹œκ°„μ΄ 쀄어든닀 μ½”λ“œλŸ‰μ΄ 컀지면 컀질수둝 λ”μš± 차이가 크닀고 ν•œλ‹€.


πŸ“Œ.ts 파일 μ‹€ν–‰ν•˜κΈ°

μ»΄νŒŒμΌν•˜μ§€ μ•Šκ³  tsνŒŒμΌμ„ 직접 μ‹€ν–‰ν•  수 μžˆλŠ” nodeλͺ¨λ“ˆμ΄ 제곡되고 μžˆλ‹€!!
npm i -g ts-node으둜 ts-node λͺ¨λ“ˆμ„ μ„€μΉ˜ν•œ ν›„
컴파일 λ˜μ§€μ•Šμ€ .ts νŒŒμΌμ„ μ‹€ν–‰μ‹œν‚¬ 수 μžˆλ‹€.
npm init으둜 πŸ—‚ package.json 을 μƒμ„±ν•œ ν›„ κ°„νŽΈν•˜κ²Œ μ‹€ν–‰μ‹œν‚¬ 수 μžˆλ„λ‘ μ •μ˜ν•΄ 보겠음.

// πŸ—‚ package.json
"scripts": {
    "start": "ts-node index.ts"
  },

이제 κ°„νŽΈν•˜κ²Œ npm start둜 λ‚΄κ°€ μ •μ˜ν•œ .tsνŒŒμΌμ„ μ‹€ν–‰μ‹œν‚¬ 수 μžˆλ‹€.

이제 νŽΈν•˜κ²Œ 곡뢀해 보자.


πŸ“Ž κ΄€λ ¨ 링크

profile
λˆ„κ΅¬λ‚˜ μ›ν•˜λŠ” μ‚¬λžŒ 되기🀧 μ£Όλ‹ˆμ–΄ λ°±μ—”λ“œ 개발자의 log

0개의 λŒ“κΈ€