// Normal cases
const user1 = {
name: "New Yorker",
age: 25
};
// This often happens in JS and it doesn't throw an error.
const user2 = {
name: 25
age: "New Yorker"
};// Defining a type for an object.
interface User {
name: string;
age: number;
}
// Correct case
const user3: User = {
name: "New Yoker",
age: 25
};
// Wrong case -> TypeScript throws an error for this
const user4: User = {
name: 25,
age: "New Yoker"
};
for (let i = 0; i < 5; i++) {
console.log(`${i + 1} iteration`);
}const myName = "Suhyeon Ryu";// ==과 ===의 차이
// ==은 데이터의 값만 같으면 true
undefined == null; // true
"99" == 99 // true
// ===은 데이터의 Type까지 비교 확인
undefined === null; // false
"99" === 99 // false// && -> AND
true && true; // true
true && false; // false
false && true; // false
false && false; // false// || -> OR
true || true; // true
true || false; // true
false || true; // true
false || false; // false// <<, >>
8 << 3 // 64
32 >> 2 // 8// !: true|false 변경, !!: boolean으로 변환
!true // false
!false // true
![] // false
!!true // true
!![] // true -> 비어있는 Array라도 일단 '존재'하기 때문에 true
!!null, !!undefined // false// ?: optional
const user1 = {
name: "Shawn"
};
console.log(user1.name);
console.log(user1.age?);
console.log(user2?.name);// ??: 앞의 값이 존재하면 그 값을, null이나 undefined이면 뒤의 값을 반환
0 ?? "hey" // 0
false ?? "hey" // false
null ?? "hey" // "hey"
undefined ?? "hey" // "hey"function add(n1, n2) {
return n1 + n2;
}
const add = (n1, n2) => {
return n1 + n2;
}// TypeScript에선 꺽쇠를 사용하여 배열 element의 Type 지정 가능
Array<number> myArr = [1, 2, 3, 4, 5];JavaScript는 Single-threaded 언어이기 때문에 여러 작업을 동시처리 하지 못함 → setTimeout이나 비동기처리 작업을 위해 ‘Callback Queue’를 도입하여 비동기적 작업 처리를 가능하도록 함
💡 async/await 작동 원리는 아래 페이지 참고
const os = require('os');
import os from "os";
// property
os.version
// method
os.freemem()
os.hostname()
os.release()
os.type()
os.totalmem()
const fs = require('fs');
import fs from "fs";
fs.readFile(filename, [option], callback);
fs.readFileSync(filename, [options]);
fs.writeFile(filename, data, [options], callback);
fs.writeFileSync(filename, data, [options]);
const path = require('path');
import path from "path";
{ sep: path.sep, delimiter: path.delimiter }
// Macbook의 경우, { sep: '/', delimiter: ':' }로 나타남
path.join("Users", "Suhyeon", "SKKU.txt"); // 'Users/Suhyeon/SKKU.txt'
path.dirname("/Users/Suhyeon/SKKU.txt"); // 'Users/Suhyeon'
path.basename("Users/Suhyeon/SKKU.txt"); // SKKU.txt
path.basename("Users/Suhyeon/SKKU.txt", ".txt"); // SKKU
const http = require('http');
import http from "http";
import http from "http";
const server = http.createServer((req, res) => {
if (req.method === "GET") {
res.writeHead(200);
res.end('GET World !');
}
if (req.method === "POST") {
res.writeHead(201);
res.end('POST World !');
}
});
server.listen(3000, () => {
console.log("The server is listening . . .");
});