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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
=== tests/cases/conformance/types/mapped/mappedTypeProperties.ts ===
export type PlaceType = 'openSky' | 'roofed' | 'garage'
>PlaceType : "openSky" | "roofed" | "garage"
type Before = {
>Before : { model: 'hour' | 'day'; }
model: 'hour' | 'day';
>model : "hour" | "day"
[placeType in PlaceType]: void;
>[placeType in PlaceType] : void
>placeType in PlaceType : boolean
>placeType : any
>PlaceType : any
}
type After = {
>After : { openSky: void; roofed: void; garage: void; }
[placeType in PlaceType]: void;
model: 'hour' | 'day'
>model : "hour" | "day"
}
type AfterQuestion = {
>AfterQuestion : { openSky?: void; roofed?: void; garage?: void; }
[placeType in PlaceType]?: void;
model: 'hour' | 'day';
>model : "hour" | "day"
}
type AfterMethod = {
>AfterMethod : { openSky?: void; roofed?: void; garage?: void; }
[placeType in PlaceType]?: void;
model(duration: number): 'hour' | 'day';
>model : (duration: number) => 'hour' | 'day'
>duration : number
}
type AfterImplicit = {
>AfterImplicit : { openSky: any; roofed: any; garage: any; }
[placeType in PlaceType]
model: 'hour' | 'day';
>model : "hour" | "day"
}
type AfterImplicitQ = {
>AfterImplicitQ : { openSky?: any; roofed?: any; garage?: any; }
[placeType in PlaceType]?
model: 'hour' | 'day'
>model : "hour" | "day"
}
interface I {
[P in PlaceType]: any
>[P in PlaceType] : any
>P in PlaceType : boolean
>P : any
>PlaceType : any
}
class C {
>C : C
[P in PlaceType]: any
>[P in PlaceType] : any
>P in PlaceType : boolean
>P : any
>PlaceType : any
}
const D = class {
>D : typeof D
>class { [P in PlaceType]: any} : typeof D
[P in PlaceType]: any
>[P in PlaceType] : any
>P in PlaceType : boolean
>P : any
>PlaceType : any
}
const E = class {
>E : typeof E
>class { [P in 'a' | 'b']: any} : typeof E
[P in 'a' | 'b']: any
>[P in 'a' | 'b'] : any
>P in 'a' | 'b' : number
>P in 'a' : boolean
>P : any
>'a' : "a"
>'b' : "b"
}
|