TypeScript/ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ TypeScript

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์“ฐ๋Š” ์ด์œ , type alias์™€ String Literal Types

Rainbow๐ŸŒˆCoder 2022. 4. 15. 14:42
728x90

type alias(๋‚ด๊ฐ€ ์ƒˆ๋กœ์šด ํƒ€์ž…์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค)๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ธฐ๋ณธ์ ์ธ ํƒ€์ž…๋ถ€ํ„ฐ ๋ณต์žกํ•˜๊ณ  ์ •๊ตํ•œ ํƒ€์ž…๊นŒ์ง€ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ฐ€๋ น

type Text = string;
 
์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜๋ฉด 
Text๋ผ๋Š” ์ƒˆ๋กœ์šด ํƒ€์ž…์€ ๋ฌธ์ž์—ด์„ ๋งํ•œ๋‹ค๊ณ  ์ง€์ •ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.
 
type Text = string;
const name: string = "ํ™๊ธธ๋™";
const nickName: Text = "ํ™ฉ์ง„์ด";
console.log(name); //ํ™๊ธธ๋™
console.log(nickName); //ํ™ฉ์ง„์ด

type alias ๋ฅผ ํ†ตํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŠน์ • ํ”„๋กœํผํ‹ฐ๊ฐ€ ๊ฐ•์ œ๋œ ๊ฐ์ฒด ํƒ€์ž…์„ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ type alias๋กœ ์ž‘์„ฑํ•œ ๊ฒƒ์œผ๋กœ ์ง€์ •ํ•ด์ฃผ๋ฉด

ํŠน์ • ํ”„๋กœํผํ‹ฐ๋งŒ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋”๋Ÿฌ

ํŠน์ • ํ”„๋กœํผํ‹ฐ์˜ ํƒ€์ž…๋„ ๋งž๊ฒŒ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

type Address = {
  ๋„์‹œ๋ช…: string;
  ๋„๋กœ๋ช…: string;
  ๊ฑด๋ฌผ๋ฒˆํ˜ธ: number;
};
const myAddress: Address = {
  ๋„์‹œ๋ช…: "์„œ์šธํŠน๋ณ„์‹œ",
  ๋„๋กœ๋ช…: "๊ฐ•๋ณ€๋Œ€๋กœ29",
  ๊ฑด๋ฌผ๋ฒˆํ˜ธ: 239,
};

console.log(myAddress); //{ '๋„์‹œ๋ช…': '์„œ์šธํŠน๋ณ„์‹œ', '๋„๋กœ๋ช…': '๊ฐ•๋ณ€๋Œ€๋กœ29', '๊ฑด๋ฌผ๋ฒˆํ˜ธ': 239 }โ€‹

์ด๋Ÿฐ ์‹์œผ๋กœ ์ƒˆ๋กœ์šด ํƒ€์ž…์„ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด type alias๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์›์‹œํƒ€์ž… ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์˜ค๋ธŒ์ ํŠธ ํ˜•ํƒœ๋„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

์ด์™€ ์—ฐ๊ฒฐ๋œ ๋˜ ๋‹ค๋ฅธ ๋ฉ‹์ง„ ํƒ€์ž…์€ 

String Literal Types ์ด๋‹ค.

 

ํƒ€์ž…์„ ๋ฌธ์ž์—ด๋กœ๋„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒŒ ๋ฌด์Šจ ๋ง์ด๋ƒ๋ฉด,

[์˜ˆ์‹œ1]

type Name = "name";
let friendName : Name;
// friendName = '์งฑ๊ตฌ'; ์—๋Ÿฌ
friendName = "name"; //์ŠคํŠธ๋ง๋ฆฌํ„ฐ๋Ÿดํƒ€์ž…์€ ๊ฐ™์€ ์ŠคํŠธ๋ง๋งŒ ๋„ฃ์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

[์˜ˆ์‹œ2]

type Json = "Json";
//let json :Json = '์ œ์ด์Šจ'; //์˜ค๋ฅ˜
let json = "Json";

[์˜ˆ์‹œ]

type isTrue = true;
let build1: isTrue = true;
//let build2: isTrue = false; //์—๋Ÿฌ
728x90