これを奨励したいかどうかはわかりませんが、OPの質問に文字通り答えます。
必要なものはすべてグローバルスコープに入れて、他の場所で参照できます。
たとえば、index.htmlに相当するものに次のように配置できます。
function logit(x, loc) {
if (console && console.log) {
console.log(loc, JSON.stringify(x, null, ' '));
}
}
これで、少なくとも2つの方法のいずれかで、これをどこでも使用できます。
グローバルスコープを恨みます。
(window as any).logit(item, "some location")
Ewwww。
宣言を使用する
を使用して参照することもできますdeclare
。
したがって、通常のTypeScriptファイルでは次のようになります。
declare const logit: (x: any, loc: string) => void;
// you could also just use
// declare const logit: any;
export default class MyClass {
public handleIt(x: string) {
logit(x, "MyClass.handleIt");
// ... logic
}
}
「index.html」だけでなく、どのファイルも、グローバルスコープに何かをプッシュするための出発点として公正なゲームであることに注意してください。たとえば、モジュールの読み込みが遅れると、問題が発生する可能性があることを覚えておいてください。
あなたの例
したがって、これら2つの値を必要に応じてグローバルに設定し(または、TypeScript以外のライブラリがそれを実行し、これがほぼ有効なユースケースになります)、次のようなことを行います...
declare let CANVAS_WIDTH: number; // maybe const, I don't know your use case.
declare let CANVAS_HEIGHT: number;
export class Bullet {
x: number = 22;
y: number = 22;
constructor (speed: number) {
this.xVelocity = speed;
}
inBounds() {
return this.x >= 0 && this.x <= CANVAS_WIDTH &&
this.y >= 0 && this.y <= CANVAS_HEIGHT;
};
}
しかし、繰り返しになりますが、これは非常にアンチパターンであり、おそらくコードの臭いを示しています。Rajagopal웃が示唆するように、別のクラスに静的な値を設定したいとします。