
function sum1(a: number, b: number) {
return a+b;
}
sum(10, 20);
function sum2(): number {
// return 'λ―Όμ';
return 10;
}
π¨ return κ°μΌλ‘ μ«μλ₯Ό λ£μ΄μ£Όμ§ μμΌλ©΄ κ²½κ³ λ°μ !
function sum3(a: number, b: number): number {
return a+b;
}
+) νμ μ§μ λ§κ³ λ μλ°μ€ν¬λ¦½νΈ ν¨μ μ μΈκ³Ό μ°¨μ΄μ μ΄ μλ€λ©΄?
νμ μ€ν¬λ¦½νΈμμλ νλΌλ―Έν°λ₯Ό μ ννλ νΉμ±μ κ°μ§λ€!
μ¦ νλΌλ―Έν°μ κ°μκ° μ μΈλ κ²κ³Ό λ§μμΌ μλ¬ μμ΄ μ€νλλ€ ~// μλ°μ€ν¬λ¦½νΈ function sum(a+b) { return a+b; } // -> μλ¬ μμ΄ 10κ³Ό 20λ§ νλΌλ―Έν°λ‘ λ°κ³ 30μ returnν΄μ€λ€. sum(10,20,30,40,50);κ°μ μ½λλ₯Ό νμ μ€ν¬λ¦½νΈμμ μμ±νλ€λ©΄?
// νμ μ€ν¬λ¦½νΈ function sum(a: number, b: number): number { return a+b; } sum(10,20); // βοΈ // Expected 2 arguments, but got 5 μλ¬ λ°μ ! sum(10,20,30,40,50); // β // Expected 2 arguments, but got 1 μλ¬ λ°μ ! sum(10); // β
μΆκ°μ μΌλ‘ λ€μ΄μ¬ μ μλ νλΌλ―Έν°μ λν΄μ ?λ₯Ό λ£μ΄μ μ μΈνλ€.
?λ₯Ό λ£μ΄μ μ μΈν κ²½μ° ν΄λΉ νλΌλ―Έν°λ₯Ό μ¨λ λκ³ μ μ¨λ λλ€λ κ²μ μλ―Ένκ² λλ€.
function log(a: string, b?: string) {
...
}
log('hellow world'); // νλΌλ―Έν°λ₯Ό νλλ§ μμ±νμ¬λ μλ¬κ° λ°μνμ§ μλλ€ !
log('hello ts', 'abc');
ν¨μλ₯Ό μ μν λ λ§€κ°λ³μμ 미리 μ΄κΈ°ν κ°μ ν λΉνμ¬ μ¬μ© κ°λ₯νλ€.
ν¨μ νΈμΆ μ ν΄λΉ λ§€κ°λ³μλ₯Ό μλ΅νλ€λ©΄ μ΄κΈ°νκ°μ΄ ν λΉλλ€ !
function honeyWeb( name: string, bestStudy = 'TacoStudy') {
return name + " " + bestStudy;
}
honeyWeb('seojin') // 'seojin TacoStudy'
honeyWeb('minseo', undefined); // 'minseo TacoStudy'
honeyWeb('hoeun', 'reactStudy'); // 'hoeun reactStudy'
honeyWeb('hyein', 'TacoStudy', 'simsimsStudy'); // β
μΈν°νμ΄μ€λ λκ°μ μμ€ν μ¬μ΄μ μνΈ κ°μ μ μν μ½μ νΉμ κ·μΉμ ν¬κ΄νμ¬ μλ―Ένλ€. νΉμ κ°μ²΄μ κ»λ°κΈ° λλ μ€κ³λλΌκ³ ν μ μλ€.
(apiλ₯Ό κ°μ Έμμ
apiμ λ°μ΄ν° λͺ¨μ(ꡬ쑰)μ΄ μ΄λ»λ€λΌλ κ²μ μΈν°νμ΄μ€λ‘ μ μν λ λ§μ΄ μ¬μ©λλ€κ³ νλ€ !)π€ μΈν°νμ΄μ€ μ¬μ©μ μ₯μ
- μ€νμ λ°©μ§
- κ°λ μ± μ’μ μ½λ
- νμ μ μνΈκ°μ μ½μμΌλ‘ λμΌν κ·μΉμ΄ μ μ©λ μ½λ μμ± κ°λ₯
μλ μ½λμμλ λ°λ³΅λλ νμ λ€κ³Ό κ΄λ ¨λ μ½λλ₯Ό μ€λ³΅ν΄μ μμ±νκ³ μλ€.
let todoItems: {id: number; title: string; done: boolean;}[];
function fetchTodoItems(): {id: number; title: string; done: boolean;}[] {
...
};
function addTodoItems(todo: {id: number; title: string; done: boolean;}): void {
...
};
μ΄λ κ² λ°λ³΅λλ νμ λ€μ μΈν°νμ΄μ€λ‘ μ μνκ³ μ¬μ©ν μ μλ€.
interface Todo {
id: number;
title: string;
done: boolean;
}
let todoItems: Todo[];
function fetchTodoItems(): Todo[] {
...
};
function addTodoItems(todo: Todo): void {
...
};
interface User {
age: number;
name: string;
}
let seojin: User = {
age: 25,
name: 'μμ§'
}
interface User {
age: number;
name: string;
}
// μ΄ ν¨μλ νμ User μΈν°νμ΄μ€ νμμ μ€μνλ λ°μ΄ν°λ§μ νλΌλ―Έν°λ‘ λ°κ² λ€ !
function getUser(user: User) {
console.log(user);
}
const tacoLeader = {
name: 'νμΈ',
}
const tacoGirl1 = {
name: 'νΈμ',
age: 22
}
getUser(tacoGirl1); // βοΈ
// age μμ± μμ΄μ μλ¬ λ°μ !
getUser(tacoLeader); // β
π¨ μΈν°νμ΄μ€λ₯Ό μ€μνμ§ μλ κ°μ νλΌλ―Έν°λ‘ λ£μΌλ©΄ μλ¬ λ°μ!
// SumFunctionμ νμ
μΌλ‘ κ°μ§λ ν¨μλ€μ κ·μΉμ μ΄λ λ€! λΌκ³ μ μνκΈ°
interface SumFunction {
// (μΈμ: μΈμ νμ
μ μ): λ°ννμ
μ μ
(a: number, b: number): number;
}
let sum: SumFunction;
sum = function(a: number, b:number): number {
return a+b;
}
interface StringArray{
// λ°°μ΄μ Index(number νμ
)μ μ κ·Όν λ ν΄λΉ μΈλ±μ€μ μμΉν κ°μ string typeμ΄λ€.
[index: number]: string;
}
let arr: StringArray = ['a', 'b', 'c']; // βοΈ
arr[0] // 'a'
// string νμ
μ μ§μ ν΄μΌ νλλ° Numberλ₯Ό μ§μ νλ©΄ μλ¬ λ°μ
arr[0] = 10; // β
π¨ μΈν°νμ΄μ€λ₯Ό μ€μνμ§ μλ νμ μ μ§μ νλ©΄ μλ¬ λ°μ
interface StringRegexDictionary {
// [keyμ νμ
: string]: valueμ νμ
: μ κ·ννμ
[key: string]: RegExp;
}
let obj: StringRegexDictionary = {
cssFile: /\.css$/, // βοΈ
jsFile: /\.js$/, // βοΈ
}
// RegExp νμ
μ§μ ν΄μΌ νλλ° string μ§μ νλ©΄ μλ¬ λ°μ
obj['tsFile'] = 'λ€ν' // β
π¨ μΈν°νμ΄μ€λ₯Ό μ€μνμ§ μλ νμ μ μ§μ νλ©΄ μλ¬ λ°μ
μμ±μ μ΄λ¦μ μ§μ νμ§ μκ³ νμ
λ§ μ ν΄λκ³ μ¬μ©νκΈ°!
-> μλμμ±μ΄ μ μ©λμ§ μμΌλ μ§μ ν μμ±μ΄ νμ€νμ§ μμ κ²½μ°μλ§ μ λμ μΌλ‘ μ¬μ©ν κ²!
interface Closet {
type: string;
size: number;
[property : string ] : string | number;
}
let myCloset: Closet {
type: 'pants',
size: 'S',
color: 'black',
when: 2023
}
interface HoneyWeb {
name: string;
age: number;
}
interface TacoGirls extends HoneyWeb{
language: string;
}
let subin: TacoGirls = { // βοΈ
name: 'μλΉ',
age: 22,
language: 'ts'
}
// HoneyWebμ νμ₯ λ°μκΈ° λλ¬Έμ HoneyWebμ μμ±λ λͺ¨λ κ°μ§κ³ μμ΄μΌ ν¨!
let sooyeon: TacoGirls = {
language: 'ts' // β
}
π¨ νμ₯ν μΈν°νμ΄μ€μ μμ±λ€μ λͺ¨λ ν¬ν¨νμ§ μμΌλ©΄ μλ¬ λ°μ
μΈν°νμ΄μ€μ μ μ¬μ©ν΄μΌνλμ§ μ½λλ₯Ό ν΅ν΄ 보μ¬μ£Όμ μ μ΄ν΄νκΈ° μ¬μ μ΄μ, κΈμ μ½κ³ μΈν°νμ΄μ€μ λν΄ λ μμΈν μ°Ύμ보μμ΄μ
λ°λ³΅λλ νμ λ€μ μΈν°νμ΄μ€λ‘ μ μνκ³ μ¬μ©ν μ μλ€κ³ μ μ΄μ£Όμ ¨λλ° type μ¨λ¦¬μ΄μ€λ₯Ό μ¬μ©νλ λ°©λ²λ μλ€κ³ ν©λλ€!
μμμ ν΅ν΄ νμ₯μ΄ νμνλ€λ©΄ νμ μ¨λ¦¬μ΄μ€λ³΄λ€λ μΈν°νμ΄μ€κ° μ 리 νμ§λ§ μΈν°νμ΄μ€λ‘ ννν μ μκ±°λ μ λμ¨ λλ ννμ μ¬μ©ν΄μΌ νλ€λ©΄ νμ μ¨λ¦¬μ΄μ€λ₯Ό μ¬μ©νλ νΈμ΄ μ 리νλ€κ³ νλ€μ!
μ΄λ‘ λ°νμΌλ‘ μλ‘μ΄ μ½λμμλ₯Ό μ 리ν΄μ£Όμ μ λ무 μ μ΅νμ΅λλ€...ππ»νΉνλ λ°°μ΄ μΈλ±μ±κ³Ό κ°μ²΄ μΈλ±μ±μ΄ λ무λ무 ν·κ°λ Έλλ° μ½λλ₯Ό 보λκΉ λ μ΄ν΄κ° μ λλ κ² κ°μμγ γ μ κ·ννμλ μμ±κ°μΌλ‘ μ§μ λλ€λ μ¬μ€ λν λ°°μ°κ³ κ°λλ€! μν°ν΄ μ½μΌλ©΄μ μ€ν°λλ λ°°μ λ λ΄μ© λ€μ 볡μ΅ν μ μμ΄μ λ무 μ’μμ:)
νμ μ€ν¬λ¦½νΈμμ νλΌλ―Έν° κ°―μμ μ νμΌλ‘ μΈν΄ μ΅μ λ νλΌλ―Έν°λ₯Ό νμ©νκ³€ νλλ°, νμ μ¬μ©νλ©΄μ μ΅μ λ νλ‘νΌν°λ₯Ό λ§μ΄ μ¬μ©νκ² λλ©΄ κ·Έμ λν λ¨μ μ μμκΉ? λΌλ κ³ λ―Όμ λ§μ΄ νκΈ°λ νλ κ±° κ°μμ
λ§μ΄ κ²μν΄ λ΄€μ§λ§ μ§μ μ μΈ μΈκΈμ΄ μλ μ’μ κΈμ μμ§ λͺ» μ°Ύμλλ°, μ κ° νλ‘μ νΈλ₯Ό νλ©΄μ λλ λ¨μ μ μ΄κ²λ€μ΄μμ΄μ.
μ½λ κ°λ μ± κ°μ: λ§μ μ΅μ λ νλΌλ―Έν°λ₯Ό μ¬μ©νλ©΄ ν¨μμ μκ·Έλμ²κ° 볡μ‘ν΄μ§ μ μμ΄ μ½λλ₯Ό μ΄ν΄νκΈ° μ΄λ €μμ§ μ μμ.
μ€μλ‘ undefined μ λ¬: μ΅μ λ νλΌλ―Έν°λ₯Ό λ§μ΄ μ¬μ©νλ©΄ ν¨μλ₯Ό νΈμΆν λ μ€μλ‘ undefinedλ₯Ό μ λ¬ν μ μμΌλ©° μ΄λ λ°νμ μλ¬μ μμΈμ΄ λ μ μμ.
μ μ§λ³΄μ μ΄λ €μ: μ½λκ° λ³΅μ‘ν΄μ§λ©΄ μ μ§λ³΄μκ° μ΄λ €μμ§ μ μμΌλ©°, νλΌλ―Έν°μ μλ―Έλ₯Ό νμ νκΈ° μ΄λ €μΈ μ μμ.
μ¬μ€ ν° λ¨μ μ μλμ§λ§ νμ μ΄μμΌλ‘ λ§μ΄ μ¬μ©νκ² λλ©΄ μμκ°μ λ¨μ μ΄ μκΈ°λλΌκ³ μ.
μ΄λ° μ λ€λ λ€μ νλ² μκ°νκ² λμλ μ’μ μν°ν΄ λ΄μ©μ΄μλ κ±° κ°μ΅λλ€!!!!
κ°κ°μ μ₯μ λ€λ ν¨κ» λμ΄ν΄μ£Όμ μ λ무 μ’μμ΄μ :-)
μ λκΈμμλ μ’μ μΈμ¬μ΄νΈλ₯Ό μ»μ΄κ°μ ¨μΌλ©΄ μ’κ² λ λ§μμ λλ€ γ γ γ