728x90
1. ๊ธฐ๋ณธ ํ์
interface kimcoding {
name: string;
age: number;
}
interface parhacker {
name: string;
age: string;
}
function printAge(person: kimcoding | parhacker) {
let age;
if (typeof person.age === 'number' || typeof person.age === 'string') {
age = person.age.toString();
}
console.log(`${person.name}์ ๋์ด๋ ${age}์ด ์
๋๋ค.`);
}
const kimcoding = {
name: '๊น์ฝ๋ฉ',
age: 30,
};
const parhacker = {
name: '๋ฐํด์ปค',
age: '์๋ฅธ',
};
printAge(kimcoding);
printAge(parhacker);โ
/* booleanํ */
let isDone: boolean = false;
let isShow: boolean = true;
console.log(isDone);
console.log(isShow);
/* ์ซ์ํ */
let num1: number = 7;
let num2: number = 0.6878;
console.log(num1);
console.log(num2);
/* ๋ฌธ์ํ */
let str: string = 'hello';
console.log(str);
/* ์ซ์ํ ๋ฐฐ์ด์ ํ์
์ ์ ํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ */
let list1: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3];
console.log(list1);
console.log(list2);
/* ๋ฌธ์ํ ๋ฐฐ์ด์ ํ์
์ ์ ํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ */
let list3: string[] = ['banana', 'apple', 'mango'];
let list4: Array<string> = ['banana', 'apple', 'mango'];
console.log(list3);
console.log(list4);
/* ํํ */
let list5: [number, string, boolean] = [1, 'banana', true];
console.log(list5);
/* ๊ฐ์ฒดํ ํ์
์ ์ ํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ */
let obj: object = {};
let obj2 = {
name: 'kimcoding',
age: 20,
isDeveloper: true,
};
console.log(obj);
console.log(obj2);
2. ํจ์
/* 1-1๋ฒ */
function sumNumber(a:number, b:number) {
return a + b;
}
/* 1-2๋ฒ */
const sumNumber2 = (a:number, b:number) => {
return a + b;
};
/* 2๋ฒ */
let sumString = (first:string, last:string) => {
return `${first} ${last}`;
};
console.log(sumString('hi', 'codestates'));
/* 3๋ฒ */
let sumString2 = (first:string, last?:string) => {
return `${first} ${last}`;
};
//์๋ ์ฝ๋๋ ๋์ํ๋๋ก ๊ตฌํํด๋ด
์๋ค.
console.log(sumString2('hi'));
/* 4๋ฒ */
let printError = ():void => {
console.log('error message');
};
3. ์ฐ์ฐ์ ํ์ฉ ํ์
์ ๋์จ(Union) ํ์
interface kimcoding {
name: string;
age: number;
}
interface parkhacker {
name: string;
age: string;
}
function printAge(person: kimcoding | parkhacker) {
let age;
if (typeof person.age === 'number' || typeof person.age === 'string') {
age = person.age.toString();
}
console.log(`${person.name}์ ๋์ด๋ ${age}์ด ์
๋๋ค.`);
}
const kimcoding = {
name: '๊น์ฝ๋ฉ',
age: 30,
};
const parhacker = {
name: '๋ฐํด์ปค',
age: '์๋ฅธ',
};
printAge(kimcoding);
printAge(parhacker);
์ธํฐ์ผ์ (Intersection) ํ์
interface kimcoding {
name: string;
email: string;
isAdmin: boolean;
}
interface parkhacker {
name: string;
email: string;
isAdmin: boolean;
}
function sendEmail(user: kimcoding & parkhacker) {
console.log(`์๋
ํ์ธ์, ${user.name}!`);
if (user.isAdmin) {
console.log(
`
๊ถํ์ด admin์ด์๊ตฐ์.
์ด๋ฉ์ผ์ ${user.email} ์
๋๋ค.
`
);
} else {
console.log(
`
๊ถํ์ด user์ด์๊ตฐ์.
์ด๋ฉ์ผ์ ${user.email} ์
๋๋ค.
`
);
}
}
const kimcoding = {
name: '๊น์ฝ๋ฉ',
email: 'kimcoding@codestates.com',
isAdmin: false,
};
const parkhacker = {
name: '๋ฐํด์ปค',
email: 'parkhacker@codestates.com',
isAdmin: true,
};
sendEmail(kimcoding);
sendEmail(parkhacker);
728x90
๋๊ธ