TypeScript 네임스페이스 작업
TypeScript 네임스페이스는 단일 글로벌 범위 내에서 코드를 구성하고 관리하는 방법을 제공합니다. 네임스페이스는 관련 코드를 그룹화하고, 이름 충돌을 방지하고, 코드 유지 관리를 개선하는 데 도움이 됩니다. 이 가이드는 예제를 통해 TypeScript 네임스페이스를 만들고 사용하는 기본 사항을 다룹니다.
TypeScript 네임스페이스란 무엇인가요?
네임스페이스는 TypeScript에서 코드를 캡슐화하는 방법입니다. 이를 통해 관련 함수, 클래스 및 변수를 단일 논리적 단위로 그룹화할 수 있으며, 이는 대규모 프로젝트에서 이름 충돌을 피하고 코드 구성을 개선하는 데 유용할 수 있습니다.
네임스페이스 생성
네임스페이스를 만들려면 namespace
키워드를 사용하고 그 뒤에 이름과 코드 블록을 추가합니다. 네임스페이스 블록 내부에서 해당 네임스페이스에 속해야 하는 함수, 클래스 또는 변수를 정의합니다.
// mathUtils.ts
namespace MathUtils {
export function add(a: number, b: number): number {
return a + b;
}
export function subtract(a: number, b: number): number {
return a - b;
}
}
이 예에서 MathUtils
네임스페이스에는 add
와 subtract
이라는 두 개의 함수가 포함되어 있으며, 둘 다 네임스페이스 외부에서 사용하기 위해 내보내집니다.
네임스페이스 사용
네임스페이스 내에서 코드를 사용하려면 네임스페이스 이름 앞에 접두사를 붙이고 점과 멤버 이름을 붙입니다. 네임스페이스가 사용 중인 범위에서 사용 가능한지 확인합니다.
// app.ts
/// <reference path="mathUtils.ts" />
const sum = MathUtils.add(5, 3);
const difference = MathUtils.subtract(5, 3);
console.log(`Sum: ${sum}`);
console.log(`Difference: ${difference}`);
이 예에서 MathUtils
네임스페이스는 삼중 슬래시 지시어 '<reference path="mathUtils.ts" />'
를 사용하여 참조되며, 이를 통해 app.ts
파일에 있는 해당 함수에 액세스할 수 있습니다.
중첩된 네임스페이스
네임스페이스는 다른 네임스페이스 내에 중첩될 수 있으며, 이는 코드를 더욱 구성하는 데 도움이 됩니다. 중첩된 네임스페이스는 네임스페이스 이름을 점으로 연결하여 액세스합니다.
// shapes.ts
namespace Shapes {
export namespace Circle {
export function area(radius: number): number {
return Math.PI * radius * radius;
}
}
export namespace Square {
export function area(side: number): number {
return side * side;
}
}
}
이 예에서 Shapes
네임스페이스에는 두 개의 중첩된 네임스페이스인 Circle
과 Square
이 포함되어 있으며, 각각 고유한 area
함수가 있습니다.
중첩된 네임스페이스 사용
중첩된 네임스페이스의 멤버에 액세스하려면 점 표기법을 사용하여 네임스페이스 이름을 연결합니다.
// app.ts
/// <reference path="shapes.ts" />
const circleArea = Shapes.Circle.area(5);
const squareArea = Shapes.Square.area(4);
console.log(`Circle Area: ${circleArea}`);
console.log(`Square Area: ${squareArea}`);
이 예에서 Circle
및 Square
네임스페이스는 Shapes
네임스페이스를 통해 액세스되며, 중첩된 네임스페이스를 어떻게 활용할 수 있는지 보여줍니다.
결론
TypeScript 네임스페이스는 코드를 구성하고 관리하는 강력한 도구입니다. 네임스페이스를 사용하면 코드를 논리적으로 그룹화하여 이름 충돌 위험을 줄이고 유지 관리성을 개선할 수 있습니다. 중첩된 네임스페이스를 포함하여 네임스페이스를 만들고 사용하는 방법을 이해하는 것은 효과적인 TypeScript 개발에 필수적입니다.