Typescript 从入门到放弃系列(十七)-模块和命名空间

127 阅读1分钟

默认情况下, 我们编写的代码处于全局命名空间中

一.模块

文件模块:如果在你的 TypeScript 文件的根级别位置含有 import 或者 export,那么它会在这个文件中创建一个本地的作用域 。

// a.ts导出
export default "james";

// index.ts导入
import name from "./a";

二.命名空间

命名空间可以用于组织代码,避免文件内命名冲突

  • 命名空间的使用

    export namespace zoo {
    export class Dog {
        eat() {
          console.log("zoo dog");
        }
      }
    }
    export namespace home {
      export class Dog {
        eat() {
          console.log("home dog");
        }
      }
    }
    
    let dog_of_zoo = new zoo.Dog();
    dog_of_zoo.eat();
    let dog_of_home = new home.Dog();
    dog_of_home.eat();
    
    // zoo dog
    // home dog
    
  • 命名空间嵌套使用

    export namespace zoo {
      export class Dog {
        eat() {
          console.log("zoo dog");
        }
      }
      export namespace bear {
        export const name = "熊";
      }
    }
    console.log(zoo.bear.name);
    

    命名空间中导出的变量可以通过命名空间使用。