# * Primitive types

Written by πŸ“ Juunone

TypeScriptλŠ” μ•„λž˜μ™€ 같이 λ³€μˆ˜λͺ… 뒀에 νƒ€μž…(μžλ£Œν˜•) 을 λͺ…μ‹œν•˜λŠ” κ²ƒμœΌλ‘œ νƒ€μž…μ„ μ„ μ–Έν•  수 μžˆλ‹€.

# λ³€μˆ˜ μ„ μ–Έ

  • μ„ μ–Έν•œ νƒ€μž…μ— λ§žμ§€ μ•ŠλŠ” 값을 ν• λ‹Ήν•˜λ©΄ 컴파일 μ‹œμ μ— μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.
let foo: string = "Hello";

let bar: number = true; //TS2322: Type 'true' is not assignable to type 'number'.
1
2
3

# νƒ€μž… μ„ μ–Έ 방법

  • ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜μ™€ λ°˜ν™˜κ°’μ— λŒ€ν•œ νƒ€μž… μ„ μ–Έ 방법은 μ•„λž˜μ™€ κ°™λ‹€.
  • 일반 λ³€μˆ˜μ™€ λ§ˆμ°¬κ°€μ§€λ‘œ μ„ μ–Έλœ νƒ€μž…μ— μΌμΉ˜ν•˜μ§€ μ•ŠλŠ” 값이 주어지면 μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.
//ν•¨μˆ˜ 선언식
function multiply(x: number, y: number) {
  return x * y;
}

//ν•¨μˆ˜ ν‘œν˜„μ‹
const multiply2 = (x: number, y: number): number => x * y;
const multiply3 = (x: string, y: number): number => x * y;

console.log(multiply(10, 5));
console.log(multiply2(8, 3));
console.log(multiply2(true, 1)); //error TS2345: Argument of type 'true' is not assignable to parameter of type 'number'.
console.log(multiply3('foo', 1)); //error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
1
2
3
4
5
6
7
8
9
10
11
12
13

# νƒ€μž… μ’…λ₯˜

TypeScriptλŠ” ES5, ES6의 μƒμœ„ 집합(superset)μ΄λ―€λ‘œ μžλ°”μŠ€ν¬λ¦½νŠΈ νƒ€μž…μ„ κ·ΈλŒ€λ‘œ μ‚¬μš©ν•  수 μžˆλ‹€. μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ νƒ€μž… 이외에도 TypeScript 고유의 νƒ€μž…μ΄ μΆ”κ°€λ‘œ μ œκ³΅λœλ‹€.

νƒ€μž… JS TS μ„€λͺ…
boolean O O true와 false
null O O 값이 μ—†λ‹€λŠ” 것을 λͺ…μ‹œ
undefined O O 값을 ν• λ‹Ήν•˜μ§€ μ•Šμ€ λ³€μˆ˜μ˜ μ΄ˆκΈ°κ°’
number O O 숫자(μ •μˆ˜μ™€ μ‹€μˆ˜, Infinity, NaN)
string O O λ¬Έμžμ—΄
symbol O O κ³ μœ ν•˜κ³  μˆ˜μ • λΆˆκ°€λŠ₯ν•œ 데이터 νƒ€μž…μ΄λ©° 주둜 객체 ν”„λ‘œνΌν‹°μ˜ μ‹λ³„μžλ‘œ μ‚¬μš©(ES6)
object O O κ°μ²΄ν˜•(μ°Έμ‘°ν˜•)
array O O λ°°μ—΄
tuple O κ³ μ •λœ μš”μ†Œ 수만큼의 μžλ£Œν˜•μ„ 미리 μ„ μ–Έν›„ 배열을 ν‘œν˜„
enum O μ—΄κ±°ν˜•, 숫자 κ°’ 집합에 이름을 μ €μž₯ν•œ 것
any O νƒ€μž… μΆ”λ‘ ν•  수 μ—†κ±°λ‚˜ νƒ€μž…μ²΄ν¬κ°€ ν•„μš”μ—†λŠ” λ³€μˆ˜μ— μ‚¬μš©, μ–΄λ–€ νƒ€μž…μ˜ 값이라도 ν• λ‹Ή κ°€λŠ₯
void O 일반적으둜 ν•¨μˆ˜μ—μ„œ λ°˜ν™˜κ°’μ΄ μ—†μ„λ•Œ μ‚¬μš©
never O κ²°μ½” λ°œμƒν•˜μ§€ μ•ŠλŠ” κ°’
Last Updated: 7/5/2019, 8:38:55 AM