美文网首页
《TypeScript》 - 命名空间

《TypeScript》 - 命名空间

作者: 张中华 | 来源:发表于2021-07-07 07:35 被阅读0次

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

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();
}

相关文章

网友评论

      本文标题:《TypeScript》 - 命名空间

      本文链接:https://www.haomeiwen.com/subject/knlxultx.html