【发布时间】:2017-07-21 22:59:41
【问题描述】:
我遇到了这段代码,但不明白它的作用:
public uploadItem(value:FileItem):void {
let index = this.getIndexOfItem(value);
let item = this.queue[index];
let transport = this.options.isHTML5 ? '_xhrTransport' : '_iframeTransport';
item._prepareToUploading();
if (this.isUploading) {
return;
}
this.isUploading = true;
(this as any)[transport](item);
}
谁能解释一下这个(this as any)语句的作用是什么?
【问题讨论】:
-
this as any是一个演员表。它将this转换为any类型(这也删除了大多数编译时类型检查) -
它没有投射@UnholySheep,这是断言。强制转换在运行时工作,但断言在开发/编译上工作并且没有副作用,因为它是一个纯粹的 Typescript 东西。
-
@Mouneer 微软自己有时称其为演员表(如release notes of TypeScript 1.6),所以这就是我对术语的混淆产生的原因
-
难怪,我觉得他们总是想迷惑我们:D
标签: javascript typescript