Reputation: 5939
I meet this code and do not understand exactly what it does :
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);
}
Can anyone explain what does this (this as any) statement do?
Upvotes: 31
Views: 37654
Reputation: 13489
(this as any ) is just a Type Assertion that works on dev/compiling time and has no side effects on run time because it is purely a Typescript thing. It can be useful if something related to this
like this[whatever]
which outputs a TS error because whatever
is not defined inside the this
TS type. So, this error can be suppressed with (this as any)[whatever]
Also (this as any)
is the equivalent to (<any> this)
Note to mention: --suppressImplicitAnyIndexErrors
as a compiler option suppresses those kind of possible errors.
Upvotes: 29
Reputation: 5418
It can be actually written as
(<any>this)[transport](item);
The type casting is exhibited in the above statement!
Upvotes: 5