1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
=== tests/cases/conformance/expressions/contextualTyping/getSetAccessorContextualTyping.ts ===
// In the body of a get accessor with no return type annotation,
// if a matching set accessor exists and that set accessor has a parameter type annotation,
// return expressions are contextually typed by the type given in the set accessor's parameter type annotation.
class C {
>C : C
set X(x: number) { }
>X : number
>x : number
get X() {
>X : number
return "string"; // Error; get contextual type by set accessor parameter type annotation
>"string" : "string"
}
set Y(y) { }
>Y : boolean
>y : boolean
get Y() {
>Y : boolean
return true;
>true : true
}
set W(w) { }
>W : boolean
>w : boolean
get W(): boolean {
>W : boolean
return true;
>true : true
}
set Z(z: number) { }
>Z : number
>z : number
get Z() {
>Z : number
return 1;
>1 : 1
}
}
|