例如,我有一个名为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;
}
}
答案 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);