(<any>window).__karma__ 是什么意思

what´s the meaning of (<any>window).__karma__

大家好,我正在学习 angular2,但我不知道这行代码的含义:

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

拜托,有人可以帮我解决这个问题吗?

此致!

它是以下的简短版本:

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

只是检查环境是否为业力测试环境。如果是,则无需加载 gif。如果不是测试环境,那么就是应用环境,在这种情况下,你应该使用加载gif。以下是如何轻松判断环境是否为业力环境

((<any>window).__karma__)

karma 将 __karma__ 属性 添加到 window

<condition> ? <truthy result> : <falsy result> 语法只是一个 ternary operator。所以基本上代码是这样的,"if in karma environment, set loading gif to empty string, otherwise load the gif"