使用外部打字稿类而不导入它

时间:2017-03-22 09:09:47

标签: typescript

例如,我有一个名为Constant

的类

我希望这个类可以在没有导入的情况下在任何地方使用,这可能吗?

in constant.ts

 class Constant {
       public static get TOTAL_FOOD() : number {return 123;}
 }

in chicken.ts

 class Chicken {

      constructor() {
          // i want to calll constant without importing it like import {Constant} 
          let totalFood : number = Constant.TOTAL_FOOD;

      }
 }

2 个答案:

答案 0 :(得分:0)

在您的示例中,您定义了用于保存某些常量的类。在这些情况下,我通常使用一个命名空间,允许我在任何地方访问常量:

namespace Constant {
    export const TOTAL_FOOD: 123;
}

如果您使用类,可以使用export关键字对它们进行标记,以使它们可以在定义的文件之外访问:

export class Constant {
    public static get TOTAL_FOOD() : number {return 123;}
}

答案 1 :(得分:0)

如果您使用requirejs加载此文件,则无法在不导入的情况下使用它。

但是,您可以使用脚本标记而不是使用requirejs来加载此文件 所以在你的HTML中你会有:

<script src="//PATH/TO/constant.js"></script>

constant.ts中不要使用export并使用声明文件标记(-d)对其进行编译,当您编译它时,您将获得:

declare class Constant {
    static readonly TOTAL_FOOD: number;
}

然后,无论您需要它,只需:

/// <reference path="PATH/TO/constant.d.ts" />

console.log(Constant.TOTAL_FOOD);