ํ์ ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ ์ค ์ด๊ฑฐํ, ํ์ ๋ณ์นญ, ํ์ ์ถ๋ก , ํด๋์ค์ ๋ํด ํ์ตํ๋ค.
enum Figure {
Circle,
Triangle,
Square,
}
//์๋์ผ๋ก ๊ฐ์ ์ง์ ํ ์ ์๋ค.
enum Figure {
Circle = 1,
Triangle = 3,
Square = 4,
}
let f: Figure = Figure.Circle;
let triangleValue: number = Figure.Triangle;
let squareValue: number = Figure.Square;
console.log(d); // ์ถ๋ ฅ: 1
console.log(triangleValue); // ์ถ๋ ฅ: 3
console.log(squareValue); // ์ถ๋ ฅ: 4
- ์ผ๋ฐ์ ์ผ๋ก ์์๊ฐ์ ๋์ ํด ์ฌ์ฉํ๋ฏ๋ก ํ์ ์คํฌ๋ฆฝํธ์์๋ ์ด๊ฑฐํ์ ๋ง์ด ์ฌ์ฉํ๋ค.
- ์ฝ๋๋ฅผ ๋์ฑ ๊ฐ๋ ์ฑ ๋๊ฒ ๋ง๋ค์ด ์ฃผ๊ณ , ์คํ์ ๊ฐ์ ์ค์๋ฅผ ๋ฐฉ์งํด ์ค๋ค.
key
)๋ก ๊ฐ(value
)์ ์ป์ ์ ์๊ณ ๊ฐ(value
)์ผ๋ก ํค(key
)๋ฅผ ์ป์ ์๋ ์๋ค.//์ด๊ฑฐํ์ ํค๋ก ๊ฐ์ ์ป์ ์ ์์ง๋ง, ๊ฐ์ผ๋ก๋ ์ด๊ฑฐํ์ ํค๋ฅผ ์ป์ ์ ์๋ค.
num Enum {
A
}
let a = Enum.A;
let nameOfA = Enum[a]; // "A"
enum Figure {
Circle = "Circle,
Triangle = "Triangle",
Square = "Square",
}
//myFigure๋ฅผ Figure.Circle์ผ๋ก ์ด๊ธฐํ ํ๊ณ ์๋ค.
let myFigure: Figure = Figure.Circle;
console.log(myFigure); // ์ถ๋ ฅ: "Circle"
๋ฌธ์์ด ๊ธฐ๋ฐ์ ์ด๊ฑฐํ์ ์ฃผ๋ก ์ธ๋ถ์์ ๊ฐ์ ธ์จ ํ์ ์คํฌ๋ฆฝํธ์์ ๋ค๋ฃจ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
(ex - HTTP ์์ฒญ ๋ฐฉ์์ ๋ํ๋ด๋ ์ด๊ฑฐํ์ ์ ์ํ ์ ์๋ค.)enum HttpMethod { Get = "GET", Post = "POST", Put = "PUT", Delete = "DELETE", } function makeRequest(url: string, method: HttpMethod) { // ... } //HTTP ์์ฒญ ๋ฐฉ์์ ์ง์ ํ ๋๋ HttpMethod.Post์ ๊ฐ์ด ์ด๊ฑฐํ ๊ฐ์ ์ฌ์ฉ makeRequest("/api/data", HttpMethod.Post);
interface
๋ฅผ ์ฌ์ฉํด ํ์
์คํฌ๋ฆฝํธ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ ์์๋ค.interface User {
name: string;
age: number;
}
const user: User = {
name: "anna",
age: 20
}
interface User {
name: string;
age?: number;
}
const user: User = {
name: "anna"
}
?
์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ์ ํ๋กํผํฐ๋ฅผ ์์ฑํ ์ ์๋ค.interface User {
name: string;
age: number;
job: string;
}
interface Greeting {
(user: User, greeting: string): string;
}
const greet: Greeting = (user, greeting) => {
return `${greeting}, ${user.name}! Your job : ${user.job}.`;
}
const user: User = {
name: "anna",
age: 30,
job: "developer"
};
const message = greet(user, "Hi");
console.log(message);
extends
ํค์๋๋ก ๊ธฐ์กด์ ์กด์ฌํ๋ ์ธํฐํ์ด์ค๋ฅผ ์์ํด ํ์ฅ์ด ๊ฐ๋ฅํ๋ค.interface Person {
name: string;
age: number;
}
interface Developer extends Person {
language: string;
}
const person: Developer = {
language: "TypeScript",
age: 20,
name: "Anna",
}
interface FoodStuff {
name: string;
}
interface FoodAmount {
amount: number;
}
interface FoodFreshness extends FoodStuff, FoodAmount {
isFreshed: boolean;
}
type
์ฌ์ฉํ๋ค.type MyString = string;
// myString๊ณผ string์ ๋์ผํ ์๋ฏธ๋ฅผ ๊ฐ๊ฒ ๋๋ค.
// string ํ์
์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅ
let str: MyString = 'hello world!';
- ์ฝ๋๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ณ ๊ฐ๋ ์ฑ ์ข๊ฒ ๋ง๋ค ์ ์๋ค.
- ๋ณต์กํ ํ์ ์ ๊ฐ๋ตํ๊ฒ ํํํ๊ณ , ํ์ ์ ์๋ฅผ ์ฌ์ฌ์ฉํด ๊ฐ๋ ์ฑ์ ๋์ผ ์ ์๋ค.
interface
์ ๋ฌ๋ฆฌtype
์ผ๋ก ์์ฑ๋ ๊ฒฝ์ฐ ์ด๋ค ํ๋กํผํฐ๋ค์ด ์ ์ ๋์ด ์๋์ง ํ์ธํ ์ ์๋ค.
//ํ์
์คํฌ๋ฆฝํธ๋ ์๋์ผ๋ก ๋ฌธ์์ด๋ก ์ถ๋ก ํ๋ค.
let isString = "Hi";
constructor
๋ฅผ ์ด์ฉํด ์ด๊ธฐํํ๋ ๋ฉค๋ฒ๋ค์ ์ ๋ถ ์๋จ์์ ์ ์ํด์ผ ํ๋ค.contructor
๋ด ์ธ์๋ก ๋ฐ์ ๋ ์ ํํ ํ์
์ ๋ช
์ํด์ผ ํ๋ค.class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet(): void {
console.log(`${this.name}์ด๊ณ , ${this.age}์ด ์
๋๋ค.`);
}
}
extends
๋ฅผ ์ฌ์ฉํด ์์ํ๋ค.//Animal = ๊ธฐ์ด ํด๋์ค, ์์ํด๋์ค
class Animal {
move(distanceInMeters: number): void {
console.log(`${distanceInMeters}m ์ด๋ํ์ต๋๋ค.`);
}
}
//Animalํด๋์ค๋ฅผ Dogํด๋์ค๊ฐ ์์
//Dog ํด๋์ค๋ Animal ํด๋์ค ๋ถํฐ ํ๋กํผํฐ์ ๋ฉ์๋๋ฅผ ์์
//Dog = ํ์ ํด๋์ค, ํ์ํด๋์ค
class Dog extends Animal {
speak(): void {
console.log("๋ฉ๋ฉ!");
}
}
const dog = new Dog();
dog.move(10);
dog.speak();
๊ธฐ๋ณธ์ ์ผ๋ก ํด๋์ค ๋ด์ ์ ์ธ๋ ๋ฉค๋ฒ๋ ์ธ๋ถ๋ก ๊ณต๊ฐ๋๋ ๊ฒ์ด ๊ธฐ๋ณธ ๊ฐ์ด๋ค.
public
์ ์ฌ์ฉํ๋ค.private
๋ฅผ ์ฌ์ฉํ๋ค.class Person {
public name: string; //๊ณต๊ฐํ ๊ฒฝ์ฐ
private age: number; //๊ณต๊ฐํ์ง ์์ ๊ฒฝ์ฐ
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet(): void {
console.log(`${this.name}์ด๊ณ , ${this.age}์ด ์
๋๋ค.`);
}
}
//name์ readonly๋ก ๋ช
์๋์ด ์๊ธฐ์, ๋ณ๊ฒฝํ ์ ์๋ค.
class Mydog {
readonly name: string;
constructor(theName: string) {
this.name = theName;
}
}
let spooky = new Mydog("์คํธํค");
spooky.name = "๋ฉ์ง ์คํธํค"; // ์๋ฌ
์งง์ ์๊ฐ ๋ด์ ํ์ตํ๋ ค๊ณ ํ๋ ์ ์ดํด๊ฐ ๋์ง ์๋ ๋ถ๋ถ์ด ๋ง๊ณ
๊ทธ๋ฅ ์ ๊ทธ๋ฐ ์์ผ๋ก ์งํ์ด ๋๋ ๊ตฌ๋... ์ ๋๋ก ํ์ตํ๋ค.
์๊ฐ ํฌ์๋ฅผ ํด์ ์ ๋๋ก ๊ณต๋ถํด์ผํ ๊ฒ ๊ฐ๋ค...ใ