Frontend 개발자 - hyo.loui

νƒ€μž…μŠ€ν¬λ¦½νŠΈ - κΈ°λ³Έ νƒ€μž… λ³Έλ¬Έ

Typescript

νƒ€μž…μŠ€ν¬λ¦½νŠΈ - κΈ°λ³Έ νƒ€μž…

hyo.loui 2023. 1. 17. 19:46

🎯λͺ©μ  :

Type Script νƒ€μž… 총정리 및 볡슡

  • String
  • Number
  • Boolean
  • Object
  • Array
  • Tuple
  • Enum
  • Any
  • Void
  • Null
  • Undefined
  • Never

1. String (λ¬Έμžν˜•)

JS와 λ§ˆμ°¬κ°€μ§€λ‘œ ν…μŠ€νŠΈ 데이터 νƒ€μž…μ„ string으둜 ν‘œν˜„ν•œλ‹€.

μž‘μ€λ”°μ˜΄ν‘œ('')λ‚˜ ν°λ”°μ˜΄ν‘œ("")둜 λ¬Έμžμ—΄ 데이터λ₯Ό κ°μ‹ΈλŠ”λ° μ‚¬μš©ν•œλ‹€

// string

let str: string = "Typescript";
// str = 1; // Error
// str = true; // Error
// str = undefined; // Error

let fullname: string = "ABC";
let age: number = 14;
let sentence: string = `my name is ${fullname}, ${age} years old!`;
console.log(sentence); // my name is ABC, 14 years old!

2. Number (μˆ«μžν˜•)

JS와 λ§ˆμ°¬κ°€μ§€λ‘œ 10μ§„μˆ˜, 16μ§„μˆ˜ ν‘œν˜„ 지원, ECAM script 2015μ—μ„œ 2μ§„μˆ˜, 8μ§„μˆ˜ ν‘œν˜„μ„ TS도 μ§€μ›ν•œλ‹€.

// Number

let decimal: number = 6; // 6μ§„μˆ˜
console.log(decimal); // 6

let hex: number = 0x0020; // 16μ§„μˆ˜ (0x + number)
console.log(hex); // 32

let binary: number = 0b0010; // 2μ§„μˆ˜ (0b + number)
console.log(binary); // 2

let octal: number = 0o0020; // 8μ§„μˆ˜ (0o + number)
console.log(octal); // 16

3. Boolean

boolean κ°’이고 μ°Έ/거짓 (true/false)

// Boolean

let istrue: boolean = true;
let isfalse: boolean = false;

//let error1: boolean = 1; // Error
//let error2: boolean = "error"; // Error

4. Array (λ°°μ—΄)

JS와 λ‹€λ₯΄κ²Œ, TSμ—μ„œλŠ” μ–΄λ–€ λ³€μˆ˜κ°€ λ°°μ—΄μž„μ„ λͺ…μ‹œμ μœΌλ‘œ μ„ μ–Έν•  수 μžˆλ‹€

 

: type[ ]

// Array (λ°°μ—΄)

let arr: number[] = [1, 2, 3];
// arr = 1 // Error

let str1: string[] = ["a", "b", "c"];
// str1 = "a"; // Error
// str1 = [1, 2, 3]; // Error

let bool: boolean[] = [true, false];
// bool = 12; // Error
// bool = [1, 2]; // Error

let arr2: Array<number> = [1, 2, 3]; // <>: μ œλ„€λ¦­

 


5. Tuple

μš”μ†Œμ˜ νƒ€μž…κ³Ό, 개수, κ³ μ •λœ 배열을 ν‘œν˜„ν•  수 μžˆλ‹€.

* 단 λͺ¨λ“  νƒ€μž…μ΄ 같을 ν•„μš”λŠ” μ—†κ³ , κ°œμˆ˜μ— μ œν•œμ€ μ—†λ‹€.

// Tuple

let x: [string, number];
x = ["hi", 1];
// x = [1, "hi"]; // Error
// x[2] = "hello"; // Error

6. Any

JSκ°€ 가진 μ†μ„±μœΌλ‘œ 동적 νƒ€μž…μ΄ μ μš©λœλ‹€!

μ‰½κ²Œ 말해 μ–΄λŠ νƒ€μž…μ΄λ“  κ°€λŠ₯ν•˜λ‹€.

// Any: javascript의 κΈ°λ³Έ 속성! (μ–΄λŠ νƒ€μž…μ΄λ“  κ°€λŠ₯)

let str3: any = "hi";

str3 = 1;
str3 = true;
str3 = ["a", 2];

let num: any = 2;
let any_: any = [1, 2, 3];
console.log("πŸ‘‰πŸ‘‰  any_", any_); // [1, 2, 3]

 

μ§€λ‚˜κ°€λŠ” μ΄μ•ΌκΈ°λ‘œ,

νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό μ‚¬μš©ν•˜λ”λΌλ„ μ• λ‹ˆμŠ€ν¬λ¦½νŠΈκ°€ λ˜μ§€ μ•Šκ²Œ μ—΄μ‹¬νžˆ ν•˜μžγ…‹γ……γ…‹

 


7. Void

ν•¨μˆ˜(Fucntion)μ—μ„œ 리턴(return)값이 없을 경우, λ³€ν™˜κ°’μ˜ νƒ€μž…

* λ³€μˆ˜μ˜ νƒ€μž…μœΌλ‘œλŠ” μ‚¬μš©ν•˜μ§€ μ•Šκ³ , ν•¨μˆ˜μ—μ„œ 참고용(λͺ…μ‹œμ μΈ κ°’)으둜 μ‚¬μš©ν•œλ‹€

// Void

function c(): void {
  console.log("hello");
}

c(); // hello

 


8. Undefined & Null
+ or

λ‚˜λŠ” undefined 와 null 이 첫 μžλ°”μŠ€ν¬λ¦½νŠΈ 곡뢀할 λ•Œ ν–‡κ°ˆλ¦΄ λ•Œ μ΄λ ‡κ²Œ μ™Έμ› λ‹€.

 

undefined == 아무도 μ°Ύμ„μˆ˜ μ—†λŠ” 것

null == λˆ„κ΅°κ°€μ—†λ‹€κ³  미리말해쀀 것

// Undefined

let a: undefined = undefined;
console.log("πŸ‘‰πŸ‘‰  a", a); // πŸ‘‰πŸ‘‰  a undefined

// Null

let b: null = null;
console.log("πŸ‘‰πŸ‘‰  b", b); // πŸ‘‰πŸ‘‰  b null

 

+ μΆ”κ°€ | ( or )

// or(|)λ₯Ό μ‚¬μš©ν•΄ 2개 μ΄μƒμ˜ νƒ€μž…μ„ κ°€μ§ˆ 수 있음
let uniontype: number | null | string = "three type!!";
console.log("πŸ‘‰πŸ‘‰  uniontype", typeof uniontype); //πŸ‘‰πŸ‘‰  uniontype string

 


9. Never

ν•¨μˆ˜(funciton)κ°€ λΉ„μ •μƒμ μœΌλ‘œ μ’…λ£Œλ˜κ±°λ‚˜,

λκΉŒμ§€ μ‹€ν–‰λ˜μ§€ μ•Šμ•˜μ„ λ•Œλ₯Ό μ˜λ―Έν•˜λŠ” νƒ€μž… (거의 ν™œμš©ν•˜μ§€ μ•ŠμŒ)

// Never

function nev(): never {
  while (true) {}
}
console.log("πŸ‘‰πŸ‘‰ nev", nev); //πŸ‘‰πŸ‘‰ nev [Function: nev]

function nev2(): never {
  throw new Error("error");
}
console.log("πŸ‘‰πŸ‘‰ nev2", typeof nev2); //πŸ‘‰πŸ‘‰ nev2 function

 

 μ΅œμ’… 정리 

  1. ν¬κ΄„μ μœΌλ‘œ TSμ•ˆμ— JSκ°€ μžˆμœΌλ―€λ‘œ, jsλŠ” μ•ˆλ³΄μ΄μ§€λ§Œ any νƒ€μž… μ΄μ˜€λ‹€!
  2. 배열은 λͺ…μ‹œμ μœΌλ‘œ νƒ€μž… 뒀에 [ ] λ₯Ό μΆ”κ°€ν•΄ 쀄 수 μžˆλ‹€.
  3. orμ—°μ‚°μž "|"둜 νƒ€μž…μ„ μ—¬λŸ¬κ°œλ‘œ μž‘μ„±ν•  수 μžˆλ‹€.