header-img
Info :
728x90

 

TypeScript ์“ฐ๋Š” ์ด์œ 

 

1. Javascript๋Š” Dynamic Typing ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. : ์ฝ”๋“œ๋ฅผ ๊ธธ๊ฒŒ ์งค ๋•Œ๋Š” ์ž์œ ๋„์™€ ์œ ์—ฐ์„ฑ์ด ๋…์ด ๋œ๋‹ค. 

// Javascript
5 - '3'

// ์—ฐ์‚ฐ ๊ฐ€๋Šฅ
// ์›๋ž˜๋Š” ์ˆซ์ž-์ˆซ์ž๋งŒ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ JS๊ฐ€ ์•Œ์•„์„œ '3'์„ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
// ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด ๋‹จ์ . ๊ด€๋ฆฌํ•˜๊ธฐ ํž˜๋“ฌ.

ts ๋Š” type ์„ ์—„๊ฒฉํ•˜๊ฒŒ ๊ฒ€์‚ฌํ•ด์ค€๋‹ค.

// Typescript
5 - '3'

// TS Error : ๋ฌธ์ž๋ž‘ ์ˆซ์ž๋ฅผ ๋นผ๋Š”๊ฒŒ ์ด์ƒํ•˜๋‹ค. ์ˆ˜์ • ์š”๋ง.

2. TypeScript ๋Š” ์—๋Ÿฌ๋ฉ”์„ธ์ง€๋ฅผ ์ž์„ธํ•˜๊ฒŒ ๋ฟŒ๋ ค์ค€๋‹ค.

Javascript Case
Typescript Error Message 2
Typescript Error Message 2

 

TypeScript ๋Š” Javascript ์™€ ๋ฌธ๋ฒ•์ด ๊ฑฐ์˜ ๋™์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ ์—๋””ํ„ฐ ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ ์—ญํ• ๋กœ ๋ด๋„ ์ถฉ๋ถ„ํ•˜๋‹ค.

 

Typescript ํ•„์ˆ˜ ๋ฌธ๋ฒ•

 

1. ๊ฐ„๋‹จํ•œ ๋ณ€์ˆ˜ ํƒ€์ž… ์ง€์ • ๊ฐ€๋Šฅ

let ์ด๋ฆ„ :string = "kim";
// ์ด ๋ณ€์ˆ˜์—๋Š” string(๋ฌธ์ž) type ๋งŒ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

์ˆซ์ž ํƒ€์ž… ์‚ฝ์ž… ์‹œ๋„ ์‹œ ํ•ด๋‹น ์—๋Ÿฌ ๋ฐœ์ƒ

ํƒ€์ž…์œผ๋กœ๋Š” string, number, boolean, null, undefined, bigint, [], {} ๋“ฑ ๊ฐ€๋Šฅ

let ์ด๋ฆ„ :string[] = ['kim', 'park'];

// ํ•ด๋‹น ๋ณ€์ˆ˜์—๋Š” string์ด ๋‹ด๊ธด array๋งŒ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
let ์ด๋ฆ„ : {name : string} = {name: 'kim'};
// object ํ˜•์‹ ์„ ์–ธ ๋ฌธ๋ฒ•
// {name? : string} ์œผ๋กœ ์„ ์–ธํ•ด์ฃผ๋ฉด name ์†์„ฑ์€ ์˜ต์…˜์ด๋ผ๋Š” ๋ฌธ๋ฒ•
let ์ด๋ฆ„ : string | number = 'kim';
// ๋‹ค์–‘ํ•œ ํƒ€์ž…์ด ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ ค๋ฉด Union Type ์‚ฌ์šฉ

let ์ด๋ฆ„ : string | number = 123;

2. ํƒ€์ž…์„ ๋ณ€์ˆ˜์— ๋‹ด์•„์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. (Type Alias)

type Name = string | number;

let ์ด๋ฆ„: Name = 123;

3. ํ•จ์ˆ˜์—๋„ ํƒ€์ž… ์ง€์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

function ํ•จ์ˆ˜(x:number) {
  return x * 2
}

// return type ๋„ ํƒ€์ž… ์ง€์ •ํ•ด์ฃผ๊ณ  ์‹ถ์„ ๋•Œ
function ํ•จ์ˆ˜(x:number) :number {
  return x * 2
}

4. array ์— ์“ธ ์ˆ˜ ์žˆ๋Š” tuple ํƒ€์ž…

type Member = [number, boolean];
// ๋ฌด์กฐ๊ฑด ์ฒซ๋ฒˆ์งธ ์ธ์ž๋Š” number
// ๋‘๋ฒˆ์งธ ์ธ์ž๋Š” boolean ์œผ๋กœ ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
let john:Member = [123, true];

5.  if) object ์— ํƒ€์ž… ์ง€์ •ํ•ด์•ผํ•  ์†์„ฑ์ด ๋„ˆ๋ฌด ๋งŽ์œผ๋ฉด ? 

type Member = {
  [key : string] : string,
  // ๊ธ€์ž๋กœ ๋œ ๋ชจ๋“  object ์†์„ฑ์˜ ํƒ€์ž…์€ string.
};
let john:Member = { name : 'kim' };

6. class ํƒ€์ž… ์ง€์ • ๊ฐ€๋Šฅ

class User {
  name: string;
  constructor(name : string){
    this.name = name;
  }
}

// typescript์˜ ๊ฒฝ์šฐ ๋ณ€์ˆ˜๋ฅผ ๋จผ์ € ์ง€์ •ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š” ๋“ฑ
// ๋ฌธ๋ฒ•์ด ์กฐ๊ธˆ ๋‹ค๋ฅธ ์ผ€์ด์Šค๊ฐ€ ์žˆ์Œ.
์ด๋Ÿฐ ๊ฒƒ๋“ค ์™ธ์—๋„ Typescript ์—์„œ๋งŒ ์ง€์ผœ์•ผํ•  ์ฝ”๋”ฉ ๋ฃฐ๋„ ์žˆ๊ณ , typescript ๋ฌธ๋ฒ• ์™ธ์˜ ๊ธฐ๋Šฅ๋„ ๋งŽ์Œ.
728x90
๋”๋ณด๊ธฐ
FRONTEND/React