woalsrhKR
EVERYDAY
woalsrhKR
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๐Ÿ“š ๊ธ€ ๋ชจ์Œ์ง‘ (578)
    • ๐Ÿ”ค Language (84)
      • ๐ŸŸจ JavaScript (52)
      • ๐ŸŸฆ TypeScript (12)
      • ๐Ÿ’— SCSS (0)
      • ๐ŸŸ  HTML (12)
      • ๐Ÿ”ต CSS (8)
    • ๐ŸŒƒ ํ•˜๋ฃจ๊ธฐ๋ก (469)
    • ๐ŸŽฌ ์˜ํ™” ๊ฐ์ƒํšŒ (1)
    • ๐Ÿ’ป Web Develop (16)
      • โ˜•๏ธ STARBUCKS ๊ฐœ๋ฐœ์ผ์ง€ (14)
    • ๐ŸŽ“ University (6)
      • ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ (5)
      • ์ •๋ณดํ†ต์‹ ๊ฐœ๋ก  (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํŒŒ๋น„์ฝ˜
  • object
  • ์ผ๊ธฐ
  • ์ผ์ƒ
  • ์ ˆ๋Œ€๊ฒฝ๋กœ
  • ์Šคํƒ€๋ฒ…์Šค
  • 79๋Œ€ํฌ
  • ๋ฉ”๊ฐ€์ปคํ”ผ
  • ํด๋ก 
  • ๋‹ค์ด์†Œ
  • ๋‹ค์ด์†Œ์‚ฌ์ฐฝ
  • ์•„์ด์ฝ˜
  • ์ƒ๋Œ€๊ฒฝ๋กœ
  • ๊ฐ์ฒด
  • ์‚ฌ์ฐฝ
  • ์—ฌ์ž์นœ๊ตฌ
  • ํŠธ์œ„ํ„ฐ์นด๋“œ
  • ํฐํŠธ
  • ์ง„์‹๋‹น
  • ์˜คํ”ˆ๊ทธ๋ž˜ํ”ผ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
woalsrhKR

EVERYDAY

๐Ÿ”ค Language/๐ŸŸฆ TypeScript

TS. Type / Boolean / Number / String / Symbol / Null & undefined / Object / Array

2022. 3. 13. 17:05

TypeScript

๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ตฌํ˜„ํ•œ JavaScript์˜ ์Šˆํผ์…‹(Superset) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. ํ™•์žฅ์ž๋กœ๋Š” .ts๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ปดํŒŒ์ผ์˜ ๊ฒฐ๊ณผ๋ฌผ๋กœ JavaScript ์ฝ”๋“œ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ ๋Ÿฐํƒ€์ž„์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ์ถœ๋ ฅ๋œ JavaScript ์ฝ”๋“œ๋ฅผ ๊ตฌ๋™์‹œํ‚ค๊ฒŒ ๋œ๋‹ค.

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ํŠน์ง•

์ปดํŒŒ์ผ ์–ธ์–ด, ์ •์  ํƒ€์ž… ์–ธ์–ด
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋™์  ํƒ€์ž…์˜ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด๋กœ ๋Ÿฐํƒ€์ž„์—์„œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์— ๋ฐ˜ํ•ด ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ •์  ํƒ€์ž…์˜ ์ปดํŒŒ์ผ ์–ธ์–ด์ด๋ฉฐ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ๋Ÿฌ ๋˜๋Š” ๋ฐ”๋ฒจ(Babel)์„ ํ†ตํ•ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋œ๋‹ค. ์ฝ”๋“œ ์ž‘์„ฑ ๋‹จ๊ณ„์—์„œ ํƒ€์ž…์„ ์ฒดํฌํ•ด ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ  ๋ฏธ๋ฆฌ ํƒ€์ž…์„ ๊ฒฐ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰ ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฝ”๋“œ ์ž‘์„ฑ ์‹œ ๋งค๋ฒˆ ํƒ€์ž…์„ ๊ฒฐ์ •ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฒˆ๊ฑฐ๋กญ๊ณ  ์ฝ”๋“œ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•˜๋ฉฐ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์Šˆํผ์…‹(Superset)
ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์Šˆํผ์…‹, ์ฆ‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์— ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ๋ฌธ๋ฒ•์„ ์ถ”๊ฐ€ํ•œ ์–ธ์–ด์ด๋‹ค. ๋”ฐ๋ผ์„œ ์œ ํšจํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ํ™•์žฅ์ž๋ฅผ .js์—์„œ .ts๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ์ปดํŒŒ์ผํ•ด ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€์›
ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ES6(ECMAScript 6)์—์„œ ์ƒˆ๋กญ๊ฒŒ ์‚ฌ์šฉ๋œ ๋ฌธ๋ฒ•์„ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ์ƒ์†, ๋ชจ๋“ˆ ๋“ฑ๊ณผ ๊ฐ™์€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ด์„ ์ œ๊ณตํ•œ๋‹ค.

Typescript์™€ JavaScript ์ฐจ์ด์ 

Typescript๋Š” ์ •์  ์œ ํ˜•์œผ๋กœ ๊ฐœ๋ฐœ ์ค‘์— ํ™•์ธํ•˜๋Š”๋ฐ, JavaScript๋Š” ๋Ÿฐํƒ€์ž„ ์ง„ํ–‰ ์ค‘์— ํ™•์ธ์ด ๋œ๋‹ค.

// JavaScript
function add(n1, n2) {
  if (typeof n1 !== 'number' || typeof n2 !== 'number') {
    throw new Error('Incorrect input!');
  }
  return n1 + n2;
}
const result = add(39, 28);
// TypeScript
function add(n1: number, n2: number) {
  return n1 + n2;
}
const result = add(39, 28);

Typescript ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์ด ์žˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ์ด ์œ ์šฉํ•˜๋ ค๋ฉด, ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ๋‹จ์œ„๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

Typescript์—์„œ, ์šฐ๋ฆฌ๋Š” JavaScript์—์„œ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ํƒ€์ž…์„ ์ง€์›ํ•˜๋ฉฐ, ๋•๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€์ ์ธ ์—ด๊ฑฐ ํƒ€์ž…์ด ์ œ๊ณต๋œ๋‹ค.

  • TypeScript์—์„œ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ์„ ์œ„ํ•ด ๊ธฐ๋ณธ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  ํƒ€์ž…์€ ์ด ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๋“ค๋กœ ์ชผ๊ฐœ์ง„๋‹ค.
  • JavaScript ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• ํฌํ•จ (superset)
    • ECMAScript ํ‘œ์ค€์— ๋”ฐ๋ฅธ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• 6๊ฐ€์ง€
      • Boolean
      • Number
      • String
      • Null
      • Undefined
      • Sysbol (ECMAScript 6์— ์ถ”๊ฐ€)
      • Array: Object ํ˜•
    • ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋„์šธ ์ถ”๊ฐ€ ์ œ๊ณต๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ํƒ€์ž…
      • Any, Void, Never, Unknown
      • Enum
      • Tuple: Object ํ˜•

๋ฐ์ดํ„ฐ ํƒ€์ž… Primitive Types

์˜ค๋ธŒ์ ํŠธ์™€ ๋ ˆํผ๋Ÿฐ์Šค ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ์‹ค์ œ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค.

ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ํ˜•์˜ ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ๋•๋ถ„์ด๋‹ค.

  • (ES2015 ๊ธฐ์ค€) 6๊ฐ€์ง€
    • boolean
    • number
    • string
    • symbol (ES2015)
    • null
    • undefined
let name = 'Imae';

name.toString();

literal ๊ฐ’์œผ๋กœ Primitive ํƒ€์ž…์˜ ์„œ๋ธŒ ํƒ€์ž…์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

true;
'hello';
3.14;
null;
undefined;

๋˜๋Š” ๋ž˜ํผ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

new Boolean(false); // typeof new Boolean(false) : 'object'
new String('world'); // typeof new String('world') : 'object'
new Number(42); // typeof new Number(42) : 'object'

TypeScript ํŒŒ์ผ JavaScript๋กœ ๋ณ€ํ™˜

ํ„ฐ๋ฏธ๋„์— ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด jsํŒŒ์ผ์ด ์ƒ๊ฒจ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ๋‹ค.

node (๋งŒ๋“ค๊ณ ์žํ•˜๋Š” ํŒŒ์ผ ์ด๋ฆ„).js๋กœ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ฉด ๋œ๋‹ค.

โžœ  basic-types npx tsc
โžœ  basic-types node string.js

Boolean / boolean

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ, ๋‹จ์ˆœํžˆ true ๋˜๋Š” false์˜ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. 

let isDone: boolean = false;

isDone = true;

console.log(typeof isDone); // 'boolean'

let isOk: Boolean = true;

let isNotOk: boolean = new Boolean(true); // ์˜ค๋ฅ˜!
// 'Boolean' ํ˜•์‹์€ 'boolean' ํ˜•์‹์— ํ• ๋‹นํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
// boolean'์€(๋Š”) ๊ธฐ๋ณธ ๊ฐœ์ฒด์ด์ง€๋งŒ 'Boolean'์€(๋Š”) ๋ž˜ํผ ๊ฐœ์ฒด์ž…๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ 'boolean'์„(๋ฅผ) ์‚ฌ์šฉํ•˜์„ธ์š”.ts(2322)

'Boolean' ํ˜•์‹์€ 'boolean' ํ˜•์‹์— ํ• ๋‹นํ•  ์ˆ˜ ์—†๋‹ค.

'boolean'์€ ๊ธฐ๋ณธ ๊ฐœ์ฒด์ด์ง€๋งŒ, 'Boolean'์€ ๋ž˜ํผ ๊ฐœ์ฒด์ด๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ 'boolean'์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ts(2322)

Number

JavaScript์™€ ๊ฐ™์ด, TypeScript์˜ ๋ชจ๋“  ์ˆซ์ž๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์ด๋‹ค.

Typescript๋Š” 16์ง„์ˆ˜, 10์ง„์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด ์™ธ์—๋„ ECMAScript 2015์— ๋„์ž…๋œ 2์ง„์ˆ˜ ๋ฐ 8์ง„์ˆ˜๋ฅผ ์ง€์›ํ•œ๋‹ค.

NaN๋„ Number ํ˜•์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

1_000_000๊ณผ ๊ฐ™์€ ํ‘œ๊ธฐ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. 1,000,000๊ณผ ๊ฐ™์€ ์˜๋ฏธ๋กœ _๊ฐ€ ,์˜ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

let decimal: number = 6; // 10์ง„์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด

let hex: number = 0xf00d; // 16์ง„์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด

let binary: number = 0b1010; // 2์ง„์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด

let octal: number = 0o744; // 8์ง„์ˆ˜ ๋ฆฌํ„ฐ๋Ÿด

let notANumber: number = NaN;

let underscoreNum: number = 1_000_000; // ๋ฐฑ ๋งŒ์„ ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ํ‘œ๊ธฐ

String

string

๋‹ค๋ฅธ ์–ธ์–ด์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ…์ŠคํŠธ ํ˜•์‹์„ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด 'String' ํ˜•์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

JavaScript์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ TypeScript๋Š” ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‘˜๋Ÿฌ์‹ธ๊ธฐ ์œ„ํ•ด ํฐ ๋”ฐ์˜ดํ‘œ (")๋‚˜, ์ž‘์€ ๋”ฐ์˜ดํ‘œ(')๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

let myName: string = 'Imae';

myName = 'Anna';

Template String

ํ–‰์— ๊ฑธ์ณ ์žˆ๊ฑฐ๋‚˜, ํ‘œํ˜„์‹์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด์ด๋‹ค. ์ด ๋ฌธ์ž์—ด์€ backtick(=backquote) ๊ธฐํ˜ธ์— ๋‘˜๋Ÿฌ์Œ“์—ฌ ์žˆ๋‹ค.

ํฌํ•จ๋œ ํ‘œํ˜„์‹์€ `${expr}`์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

let fullName: string = `Imae Kwak`;
let age: number = 21;

let sentence: string = `Hello, My name is ${fullName}.

I'll be ${age + 1} years old next month.`;

console.log(sentence);
// Hello, My name is Imae Kwak.
// 
// I'll be 22 years old next month.

Symbol

ECMAScript 2015์˜ Symbol์ด๋‹ค. new Symbol๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

Symbol ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ symbol ํƒ€์ž…์„ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

console.log(Symbol('foo') === Symbol("foo")); // false
// "target": "es2016",   
// "module": "commonjs" ,                                         
// "lib": [
//   "ES2015", 
//   "DOM"
//   ],            
// tsconfig ํŒŒ์ผ ๋ฐ”๊พธ์–ด์ฃผ์–ด์•ผ ํ•จ.

ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ํƒ€์ž…์˜ ๊ฐ’์„ ๋‹ด์•„์„œ ์‚ฌ์šฉํ•œ๋‹ค.

๊ณ ์œ ํ•˜๊ณ  ์ˆ˜์ •๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ’์œผ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.

๊ทธ๋ž˜์„œ ์ฃผ๋กœ ์ ‘๊ทผ์„ ์ œ์–ดํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๋‹ค.

let sym = Symbol();
let obj = {
    [sym]: "value"
};
console.log(obj[sym]); // "value"

Null & Undefined

TypeScript์—์„œ, Undefined์™€ Null์€ ์‹ค์ œ๋กœ ๊ฐ๊ฐ undefined ๋ฐ null ์ด๋ผ๋Š” ํƒ€์ž…์„ ๊ฐ€์ง„๋‹ค. void์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ๊ทธ ์ž์ฒด๋กœ๋Š” ๋”ฑํžˆ ์œ ์šฉํ•˜์ง€๋Š” ์•Š๋‹ค. ๋‘˜๋‹ค ์†Œ๋ฌธ์ž๋งŒ ์กด์žฌํ•œ๋‹ค.

// let MyName: number = undefined; // ์˜ค๋ฅ˜

// let u: undefined = null; // ์˜ค๋ฅ˜
let v: void = undefined;

let union: string | null = null; // ํ•ฉ์ง‘ํ•ฉ๊ฐ™์€ ์˜๋ฏธ

union = "Imae";

undefined & null์€ ๋‹ค๋ฅธ ๋ชจ๋“  ํ˜•์‹์˜ ํ•˜์œ„ ํ˜•์‹์ด๋‹ค.

์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ทธ๋ ‡๋‹ค.

number์— null ๋˜๋Š” undefined๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

ํ•˜์ง€๋งŒ, ์ปดํŒŒ์ผ ์˜ต์…˜์—์„œ `--strictNullChecks`๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, null๊ณผ undefined๋Š” void๋‚˜ ์ž๊ธฐ ์ž์‹ ๋“ค์—๊ฒŒ๋งŒ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ๊ฒฝ์šฐ, null๊ณผ undefined๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๋ ค๋ฉด union type์„ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

null in JavaScript

null ์ด๋ผ๋Š” ๊ฐ’์œผ๋กœ ํ• ๋‹น๋œ ๊ฒƒ์„ null์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋ฌด์–ธ๊ฐ€ ์žˆ๋Š”๋ฐ, ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋œ ๋œ ์ƒํƒœ์ด๋‹ค.

null์ด๋ผ๋Š” ํƒ€์ž…์€ null์ด๋ผ๋Š” ๊ฐ’๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

๋Ÿฐํƒ€์ž„์—์„œ typeof ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด์„œ ์•Œ์•„๋‚ด๋ฉด, object์ด๋‹ค.

let n: null = null;

console.log(n); // null
console.log(typeof n); // object

undefined in JavaScript

๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜๋Š” undefined๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ๋ฌด์–ธ๊ฐ€๊ฐ€ ์•„์˜ˆ ์ค€๋น„๊ฐ€ ์•ˆ๋œ ์ƒํƒœ์ด๋‹ค.

object์˜ property๊ฐ€ ์—†์„ ๋•Œ๋„ undefined์ด๋‹ค.

๋Ÿฐํƒ€์ž„์—์„œ typeof ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด์„œ ์•Œ์•„๋‚ด๋ฉด, undefined์ด๋‹ค.

let u: undefined = undefined;

console.log(u); // undefined
console.log(typeof u); // undefined

Object

const person1 = {name: 'Imae', age: 29};

const person2 = Object.create({name: 'Imae', age: 29});
// ๋‚ด์žฅ ๊ฐ์ฒด

object

"primitive type์ด ์•„๋‹Œ ๊ฒƒ"์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํƒ€์ž…

 

non-primitive type

not number, string, boolean, bigint, symbol, null or undefined

Array

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ array๋Š” ๊ฐ์ฒด์ด๋‹ค.

์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • Array<ํƒ€์ž…>
  • ํƒ€์ž…[]
let list: (number | string)[] = [1, 2, 3, "4"]; // ์ž์ฃผ ์‚ฌ์šฉ
// union ํƒ€์ž…์œผ๋กœ ํ•ฉ์ง‘ํ•ฉ์„ ๋‚˜ํƒ€๋ƒ„ ์ˆซ์ž๊ฑฐ๋‚˜ ๋ฌธ์ž์—ด
[10, "Imae"];

let list: Array<number> = [1, 2, 3]; // ์‚ฌ์šฉ์„ ์ž์ œ
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ”ค Language > ๐ŸŸฆ TypeScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

TS. Alias (๋ณ„์นญ)  (2) 2022.06.20
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Œ€์‹  ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ํƒํ•˜๋Š” ์ด์œ   (1) 2022.06.20
TS. ์ธํ„ฐํŽ˜์ด์Šค interface  (0) 2022.03.22
TS. ํƒ€์ž… ์‹œ์Šคํ…œ Type System  (0) 2022.03.16
TS. Tuple / any / unknown / never / void  (0) 2022.03.14
    '๐Ÿ”ค Language/๐ŸŸฆ TypeScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Œ€์‹  ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ํƒํ•˜๋Š” ์ด์œ 
    • TS. ์ธํ„ฐํŽ˜์ด์Šค interface
    • TS. ํƒ€์ž… ์‹œ์Šคํ…œ Type System
    • TS. Tuple / any / unknown / never / void
    woalsrhKR
    woalsrhKR

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”