μλ°μ€ν¬λ¦½νΈ νμ μ€ν¬λ¦½νΈ μ°¨μ΄, νμ μ€ν¬λ¦½νΈ κΈ°μ΄
νμ μ€ν¬λ¦½νΈ : νμ μ λͺ μΈνλ€. νμ μ€λ₯λ₯Ό μ½κ² μ°Ύμ μ μκ³ μ ν¨μ± κ²μ¦μ μ©μ΄
1. μλ°μ€ν¬λ¦½νΈ
function greet(name) {
return "Hello, " + name + "!";
}
console.log(greet("John"));
2. νμ μ€ν¬λ¦½νΈ - νλΌλ―Έν°, 리ν΄κ°μ νμ μ λͺ μΈ
function greet(name: string): string {
return "Hello, " + name + "!";
}
console.log(greet("John"));
[νμ μ€ν¬λ¦½νΈ κΈ°μ΄ λ¬Έλ²]
λ³μ μ μΈ: λ³μλ₯Ό μ μΈν λλ let λλ const ν€μλλ₯Ό μ¬μ©ν©λλ€
let num: number = 10;
const message: string = "Hello,World!";
ν¨μ μ μΈ: ν¨μλ₯Ό μ μΈν λλ νλΌλ―Έν°μ λ°ν νμ μ λͺ μν μ μμ΅λλ€.
function add(a: number, b: number): number {
return a + b;
}
μΈν°νμ΄μ€(Interface): μΈν°νμ΄μ€λ₯Ό μ¬μ©νμ¬ κ°μ²΄μ ννλ₯Ό μ μν μ μμ΅λλ€.
interface Person {
name: string;
age: number;
}
let person: Person = {
name: "John",
age: 30
};
λ°°μ΄(Array): λ°°μ΄μ μ μΈν λλ νμ λ€μ λκ΄νΈ([])λ₯Ό μ¬μ©ν©λλ€.
let numbers: number[] = [1, 2, 3, 4, 5];
μ λ€λ¦(Generic): μ λ€λ¦μ μ¬μ©νμ¬ νμ
μ νλΌλ―Έν°νν μ μμ΅λλ€.
function identity<T>(arg: T): T {
return arg;
}
let result = identity<string>("Hello");
μ λ€λ¦(Generic)μ νμ μ€ν¬λ¦½νΈμμ ν¨μ, ν΄λμ€, μΈν°νμ΄μ€ λ±μ λ€λ£° λ νΉμ ν νμ μ λͺ μνμ§ μκ³ , μ¬λ¬ μ’ λ₯μ νμ μ μ§μνλλ‘ νλ κΈ°λ₯μ λλ€. μ΄λ₯Ό ν΅ν΄ μ½λμ μ¬μ¬μ©μ±μ λμ΄κ³ μ μ°μ±μ κ°μΆ μ μμ΅λλ€.
function identity<T>(arg: T): T {
return arg;
}
let output = identity<string>("Hello, TypeScript!");
console.log(output); // μΆλ ₯: Hello, TypeScript!
let numOutput = identity<number>(123);
console.log(numOutput); // μΆλ ₯: 123
μμ identity ν¨μλ μ λ€λ¦μ μ¬μ©νμ¬ μ λ ₯λ μΈμλ₯Ό κ·Έλλ‘ λ°ννλ ν¨μμ λλ€. <T>λ ν¨μ μ μΈμμ νμ νλΌλ―Έν°λ₯Ό λνλ΄λ©°, μ΄λ ν¨μκ° νΈμΆλ λ μ€μ νμ μΌλ‘ λ체λ©λλ€. 첫 λ²μ§Έ νΈμΆμμλ string νμ μΌλ‘ λͺ μλμμΌλ―λ‘ ν¨μλ λ¬Έμμ΄μ λ°ννκ³ , λ λ²μ§Έ νΈμΆμμλ number νμ μΌλ‘ λͺ μλμμΌλ―λ‘ ν¨μλ μ«μλ₯Ό λ°νν©λλ€.
ν΄λμ€μμλ νμ©κ°λ₯νλ€
class Box<T> {
private value: T;
constructor(value: T) {
this.value = value;
}
getValue(): T {
return this.value;
}
}
let boxOfString = new Box<string>("Hello");
console.log(boxOfString.getValue()); // μΆλ ₯: Hello
let boxOfNumber = new Box<number>(123);
console.log(boxOfNumber.getValue()); // μΆλ ₯: 123
μμ Box ν΄λμ€λ μ λ€λ¦μ μ¬μ©νμ¬ μ΄λ€ νμ μ κ°μ΄λ λ΄μ μ μλ μμλ₯Ό λ§λλλ€. μ΄λ₯Ό ν΅ν΄ μ½λμ μ¬μ¬μ©μ±κ³Ό μ μ°μ±μ΄ ν₯μλ©λλ€.
ν΄λμ€(Class): ν΄λμ€λ₯Ό μ¬μ©νμ¬ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ ν μ μμ΅λλ€.
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet() {
return `Hello, my name is ${this.name} and I'm ${this.age} years old.`;
}
}
let person = new Person("John", 30);
console.log(person.greet());