Microsoft/TypeScript

Type Inference in for... in combined with typeof

Open

#12,944 opened on 2016年12月15日

GitHub で見る
 (1 comment) (0 reactions) (0 assignees)TypeScript (48,455 stars) (6,726 forks)batch import
Help WantedSuggestion

説明

TypeScript Version: 2.1.4

The following code gives an error in TS 2.1: It's not really nice code, but I think it should work never the less :)

for (var a in this) {
            if (typeof this[a] === "function" && !ko.isObservable(this[a]))
                this[a] = this[a].bind(this);
        }

Expected behavior: I would expect this[a] to be typed as this[keyof this] & Function:

for (var a in this) {
            if (typeof this[a] === "function" && !ko.isObservable(this[a]))
                this[a] =( <this[keyof this] & Function> this[a]).bind(this);
        }

Actual behavior: It gives an error, as of TS 2.1, it worked in TS 2.0 (because mapped types did not exist, this[a] was typed as any)

コントリビューターガイド