2016-12-07 68 views
1

嗨I'm學習angular2,和我不知道what's這行代碼的含義是:what's(<any>窗口).__ karma__的意思

let loadingGif: string = ((<any>window).__karma__) ? '' : require('images/loadin\ g.gif'); 

,能不能請任何人都可以幫助我?

問候!

回答

0

它只是檢查環境是否是業力測試環境。如果是,那麼就不需要加載gif。如果它不是測試環境,那麼它就是應用程序環境,在這種情況下,您應該使用加載gif。下面是你如何可以輕鬆地檢查,如果環境是因果報應環境

((<any>window).__karma__) 

__karma__屬性添加到window

<condition> ? <truthy result> : <falsy result>語法只是一個ternary operator。所以基本上這段代碼讀起來,「如果在業力環境中,設置加載gif爲空字符串,否則加載gif」

0

這是一個簡短的版本:

var loadingGif = null; 

if ((<any>window).__karma__ === undefined) { 
    loadingGif = ''; 
} else { 
    loadingGif = require('images/loadin\ g.gif'); 
} 

默認情況下,在瀏覽器中的全局變量window沒有一個名爲__karma__屬性。因此,window的類型使用TypeScript轉換語法<any>轉換爲any

函數require加載'images/loadin\ g.gif'文件。

而變量__karma__來自the Karma test runner