我正在寫一個應用程序來學習TypeScript。它在Chrome中運行良好,但在Edge中運行時遇到問題。我有這個方法:爲什麼我的TypeScript有時會給我一個實例,其他時間會給我一個類?
set position(pos: Point) {
const diffAsPoint = pos.minus(this.canvasPos);
let diff: Vector2D = diffAsPoint.toVector2D(); // <--- this line
if (diff instanceof Vector2D) {
console.info("is a vector!");
} else {
console.info("not a vector!");
}
我看到的是,有時,差異是Vector2D
而不是作爲的一個Vector2D
的實例。顯然,當這種情況發生時,其上的任何操作導致Object doesn't support property or method ...
方法toVector2D
很簡單:
toVector2D(): Vector2D {
return new Vector2D(this.x, this.y);
}
我不知道這是否有差別,但這裏的一些背景:
該應用程序是一個遊戲循環運行(每秒60幀 - 使用
window.requestAnimationFrame(() => this.animloop());
)應用程序運行在Chrome精細
它不運行在IE罰款(它看起來像一個不同的問題,但我一直沒能看到什麼又是IE瀏覽器和調試器調查時工具崩潰)
它採用了最新的打字稿(2.2.1)
似乎在啓動後隨機點發生,有時2秒,有時3秒
有在發生這種情況的代碼等地,凡是涉及到
Point
和Vector2D
,看似關係到每一幀創建它們(的一些問題消失,如果我介紹一個領域,而不是創造一個每幀)我使用的是AMD和requirejs
更新-------
使用邊緣和調試工具和設置「從服務器總是刷新」,從網絡加載時-現場(http://pacmanweb.azurewebsites.net/),我可以看到遊戲嘗試運行在所有模塊都加載之前。而在Chrome中,它似乎在運行遊戲之前等待所有內容加載。
任何想法?
這確實真的很奇怪,有沒有什麼機會可以做出像pnkr這樣的東西來展示這個問題。我們可以玩的東西呢? :) – toskv
@toskv - 我已經包含了一個鏈接到網站 - 希望你喜歡它(在你修好了之後:)) –