문제:
TypeScript 외부 모듈과 함께 네임스페이스를 사용하는 코드가 있습니다. 모듈을 설치했지만 오류나 예상치 못한 동작이 발생했습니다. 코드는 다음과 같습니다.
// baseTypes.ts export namespace Living.Things { export class Animal { move() { /* ... */ } } export class Plant { photosynthesize() { /* ... */ } } } // dog.ts import b = require('./baseTypes'); export namespace Living.Things { // Error, can't find name 'Animal', ?? export class Dog extends Animal { woof() { } } } // tree.ts // Error, can't use the same name twice, ?? import b = require('./baseTypes'); import b = require('./dogs'); namespace Living.Things { // Why do I have to write b.Living.Things.Plant instead of b.Plant?? class Tree extends b.Living.Things.Plant { } }
캔디 컵 비유:
종이에 사탕을 정리한다고 상상해 보세요. 각 시트가 별도의 모듈인 경우 각 시트에 "A" 라벨이 붙은 컵을 만드는 것은 도움이 되지 않습니다. 이는 실제로 사탕을 정리하지 않고 추가 단계를 만드는 것과 같습니다.
컵 없는 생활:
네임스페이스를 사용하는 대신 다음과 같이 코드를 작성하는 것이 좋습니다.
// Mod1.ts export class Twix { ... } // Mod2.ts export class PeanutButterCup { ... } // Mod3.ts export class KitKat { ... }
이렇게 하면 불필요한 네임스페이스가 필요 없는 단순한 구조가 생성됩니다.
네임스페이스가 존재하는 이유 t 모듈에 적합:
외부 모듈에 대한 지침:
위험 신호:
위 내용은 TypeScript 외부 모듈에서 네임스페이스를 어떻게 효과적으로 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!