《TypeScript》 - 命名空间

命名空间一个最明确的目的就是解决重名问题。

TypeScript 命名空间的定义与使用

TypeScript 中命名空间使用 namespace 来定义,语法格式如下:

namespace SomeNameSpaceName { 
   export interface ISomeInterfaceName {      }  
   export class SomeClassName {      }  
}

以上定义了一个命名空间 SomeNameSpaceName,如果我们需要在外部可以调用 SomeNameSpaceName 中的类和接口,则需要在类和接口添加 export 关键字。
要在另外一个命名空间调用语法格式为:

SomeNameSpaceName.SomeClassName;

如果一个命名空间在一个单独的 TypeScript 文件中,则应使用三斜杠 /// 引用它,语法格式如下:

/// <reference path = "SomeFileName.ts" />

嵌套命名空间

语法格式如下:

namespace namespace_name1 { 
    export namespace namespace_name2 {
        export class class_name {    } 
    } 
}

代码示例:

namespace Car {
    export class Bicycle {
        color:string;
    }

    // namespace 嵌套
    export namespace ColorManager {
        export class Color {
            static getColors():string[]{
                return ['red', 'white', 'blud'];
            }
        }
    } 
}

namespace Person {
    export class Student {
        runCar():void {
            const car = new Car.Bicycle();
            // 由于此时color并没有被赋值,所以是undefined
            console.log(`Student is running a ${car.color} car.`); // Student is running a undefined car.
            
            console.log(`想给车子加个颜色,从Car的颜色管理中心查看可选颜色:`);
            console.log(Car.ColorManager.Color.getColors()); // [ 'red', 'white', 'blud' ]
        }
    }

    const student = new Student();
    student.runCar();
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 命名空间一个最明确的目的就是解决重名问题。命名空间使用 namespace 来定义,语法格式如下: namespa...
    薥劃阅读 220评论 0 0
  • 在代码量较大的情况下,为了避免各种变量命名相冲突,可以将类似功能的函数、类、接口等放置到命名空间中 在TypeSc...
    浅忆_0810阅读 947评论 0 2
  • 这篇文章描述了如何在TypeScript里使用命名空间(之前叫做“内部模块”)来组织你的代码。 就像我们在术语说明...
    2o壹9阅读 788评论 1 49
  • 这篇文章将概括介绍在TypeScript里使用模块与命名空间来组织代码的方法。 我们也会谈及命名空间和模块的高级使...
    2o壹9阅读 1,639评论 1 49
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,052评论 2 7