interface Person {
name: string;
age: number;
}
// 객체 생성
const person: Person = {
name: "John",
age: 30
};
console.log(person.name); // 출력: John
console.log(person.age); // 출력: 30
// 함수에 적용
function greet(person: Person): string {
return `Hello, ${person.name}. You are ${person.age} years old.`;
}
const person1: Person = { name: "Alice", age: 25 };
console.log(greet(person1)); // 출력: Hello, Alice. You are 25 years old.
// 확장
interface Employee extends Person {
role: string;
}
const employee: Employee = {
name: "Alice",
age: 25,
role: "Developer"
};
남이 만든 인터페이스와 병합될 수 있는 것을 막능 용도로 사용합니다
export를 붙여줘야만 사용할 수 있습니다
namespace Shapes {
export interface Circle {
radius: number;
}
export function calculateArea(circle: Circle): number {
return Math.PI * circle.radius ** 2;
}
}
const myCircle: Shapes.Circle = { radius: 5 };
const area = Shapes.calculateArea(myCircle);
console.log(area); // 78.53981633974483