|
| 1 | +=== tests/cases/compiler/mappedTypeContextualTypesApplied.ts === |
| 2 | +type TakeString = (s: string) => any; |
| 3 | +>TakeString : Symbol(TakeString, Decl(mappedTypeContextualTypesApplied.ts, 0, 0)) |
| 4 | +>s : Symbol(s, Decl(mappedTypeContextualTypesApplied.ts, 0, 19)) |
| 5 | + |
| 6 | +// Various functions accepting an object whose properties are TakeString functions. |
| 7 | +// Note these all use mapped types. |
| 8 | +declare function mapped1<T extends {[P in string]: TakeString}>(obj: T): void; |
| 9 | +>mapped1 : Symbol(mapped1, Decl(mappedTypeContextualTypesApplied.ts, 0, 37)) |
| 10 | +>T : Symbol(T, Decl(mappedTypeContextualTypesApplied.ts, 4, 25)) |
| 11 | +>P : Symbol(P, Decl(mappedTypeContextualTypesApplied.ts, 4, 37)) |
| 12 | +>TakeString : Symbol(TakeString, Decl(mappedTypeContextualTypesApplied.ts, 0, 0)) |
| 13 | +>obj : Symbol(obj, Decl(mappedTypeContextualTypesApplied.ts, 4, 64)) |
| 14 | +>T : Symbol(T, Decl(mappedTypeContextualTypesApplied.ts, 4, 25)) |
| 15 | + |
| 16 | +declare function mapped2<T extends {[P in keyof T]: TakeString}>(obj: T): void; |
| 17 | +>mapped2 : Symbol(mapped2, Decl(mappedTypeContextualTypesApplied.ts, 4, 78)) |
| 18 | +>T : Symbol(T, Decl(mappedTypeContextualTypesApplied.ts, 5, 25)) |
| 19 | +>P : Symbol(P, Decl(mappedTypeContextualTypesApplied.ts, 5, 37)) |
| 20 | +>T : Symbol(T, Decl(mappedTypeContextualTypesApplied.ts, 5, 25)) |
| 21 | +>TakeString : Symbol(TakeString, Decl(mappedTypeContextualTypesApplied.ts, 0, 0)) |
| 22 | +>obj : Symbol(obj, Decl(mappedTypeContextualTypesApplied.ts, 5, 65)) |
| 23 | +>T : Symbol(T, Decl(mappedTypeContextualTypesApplied.ts, 5, 25)) |
| 24 | + |
| 25 | +declare function mapped3<T extends {[P in keyof any]: TakeString}>(obj: T): void; |
| 26 | +>mapped3 : Symbol(mapped3, Decl(mappedTypeContextualTypesApplied.ts, 5, 79)) |
| 27 | +>T : Symbol(T, Decl(mappedTypeContextualTypesApplied.ts, 6, 25)) |
| 28 | +>P : Symbol(P, Decl(mappedTypeContextualTypesApplied.ts, 6, 37)) |
| 29 | +>TakeString : Symbol(TakeString, Decl(mappedTypeContextualTypesApplied.ts, 0, 0)) |
| 30 | +>obj : Symbol(obj, Decl(mappedTypeContextualTypesApplied.ts, 6, 67)) |
| 31 | +>T : Symbol(T, Decl(mappedTypeContextualTypesApplied.ts, 6, 25)) |
| 32 | + |
| 33 | +declare function mapped4<T>(obj: T & {[P in keyof T]: TakeString}): void; |
| 34 | +>mapped4 : Symbol(mapped4, Decl(mappedTypeContextualTypesApplied.ts, 6, 81)) |
| 35 | +>T : Symbol(T, Decl(mappedTypeContextualTypesApplied.ts, 7, 25)) |
| 36 | +>obj : Symbol(obj, Decl(mappedTypeContextualTypesApplied.ts, 7, 28)) |
| 37 | +>T : Symbol(T, Decl(mappedTypeContextualTypesApplied.ts, 7, 25)) |
| 38 | +>P : Symbol(P, Decl(mappedTypeContextualTypesApplied.ts, 7, 39)) |
| 39 | +>T : Symbol(T, Decl(mappedTypeContextualTypesApplied.ts, 7, 25)) |
| 40 | +>TakeString : Symbol(TakeString, Decl(mappedTypeContextualTypesApplied.ts, 0, 0)) |
| 41 | + |
| 42 | +declare function mapped5<T, K extends keyof T>(obj: T & {[P in K]: TakeString}): void; |
| 43 | +>mapped5 : Symbol(mapped5, Decl(mappedTypeContextualTypesApplied.ts, 7, 73)) |
| 44 | +>T : Symbol(T, Decl(mappedTypeContextualTypesApplied.ts, 8, 25)) |
| 45 | +>K : Symbol(K, Decl(mappedTypeContextualTypesApplied.ts, 8, 27)) |
| 46 | +>T : Symbol(T, Decl(mappedTypeContextualTypesApplied.ts, 8, 25)) |
| 47 | +>obj : Symbol(obj, Decl(mappedTypeContextualTypesApplied.ts, 8, 47)) |
| 48 | +>T : Symbol(T, Decl(mappedTypeContextualTypesApplied.ts, 8, 25)) |
| 49 | +>P : Symbol(P, Decl(mappedTypeContextualTypesApplied.ts, 8, 58)) |
| 50 | +>K : Symbol(K, Decl(mappedTypeContextualTypesApplied.ts, 8, 27)) |
| 51 | +>TakeString : Symbol(TakeString, Decl(mappedTypeContextualTypesApplied.ts, 0, 0)) |
| 52 | + |
| 53 | +declare function mapped6<K extends string>(obj: {[P in K]: TakeString}): void; |
| 54 | +>mapped6 : Symbol(mapped6, Decl(mappedTypeContextualTypesApplied.ts, 8, 86)) |
| 55 | +>K : Symbol(K, Decl(mappedTypeContextualTypesApplied.ts, 9, 25)) |
| 56 | +>obj : Symbol(obj, Decl(mappedTypeContextualTypesApplied.ts, 9, 43)) |
| 57 | +>P : Symbol(P, Decl(mappedTypeContextualTypesApplied.ts, 9, 50)) |
| 58 | +>K : Symbol(K, Decl(mappedTypeContextualTypesApplied.ts, 9, 25)) |
| 59 | +>TakeString : Symbol(TakeString, Decl(mappedTypeContextualTypesApplied.ts, 0, 0)) |
| 60 | + |
| 61 | +declare function mapped7<K extends keyof any>(obj: {[P in K]: TakeString}): void; |
| 62 | +>mapped7 : Symbol(mapped7, Decl(mappedTypeContextualTypesApplied.ts, 9, 78)) |
| 63 | +>K : Symbol(K, Decl(mappedTypeContextualTypesApplied.ts, 10, 25)) |
| 64 | +>obj : Symbol(obj, Decl(mappedTypeContextualTypesApplied.ts, 10, 46)) |
| 65 | +>P : Symbol(P, Decl(mappedTypeContextualTypesApplied.ts, 10, 53)) |
| 66 | +>K : Symbol(K, Decl(mappedTypeContextualTypesApplied.ts, 10, 25)) |
| 67 | +>TakeString : Symbol(TakeString, Decl(mappedTypeContextualTypesApplied.ts, 0, 0)) |
| 68 | + |
| 69 | +declare function mapped8<K extends 'foo'>(obj: {[P in K]: TakeString}): void; |
| 70 | +>mapped8 : Symbol(mapped8, Decl(mappedTypeContextualTypesApplied.ts, 10, 81)) |
| 71 | +>K : Symbol(K, Decl(mappedTypeContextualTypesApplied.ts, 11, 25)) |
| 72 | +>obj : Symbol(obj, Decl(mappedTypeContextualTypesApplied.ts, 11, 42)) |
| 73 | +>P : Symbol(P, Decl(mappedTypeContextualTypesApplied.ts, 11, 49)) |
| 74 | +>K : Symbol(K, Decl(mappedTypeContextualTypesApplied.ts, 11, 25)) |
| 75 | +>TakeString : Symbol(TakeString, Decl(mappedTypeContextualTypesApplied.ts, 0, 0)) |
| 76 | + |
| 77 | +declare function mapped9<K extends 'foo'|'bar'>(obj: {[P in K]: TakeString}): void; |
| 78 | +>mapped9 : Symbol(mapped9, Decl(mappedTypeContextualTypesApplied.ts, 11, 77)) |
| 79 | +>K : Symbol(K, Decl(mappedTypeContextualTypesApplied.ts, 12, 25)) |
| 80 | +>obj : Symbol(obj, Decl(mappedTypeContextualTypesApplied.ts, 12, 48)) |
| 81 | +>P : Symbol(P, Decl(mappedTypeContextualTypesApplied.ts, 12, 55)) |
| 82 | +>K : Symbol(K, Decl(mappedTypeContextualTypesApplied.ts, 12, 25)) |
| 83 | +>TakeString : Symbol(TakeString, Decl(mappedTypeContextualTypesApplied.ts, 0, 0)) |
| 84 | + |
| 85 | +mapped1({foo: s => 42}); |
| 86 | +>mapped1 : Symbol(mapped1, Decl(mappedTypeContextualTypesApplied.ts, 0, 37)) |
| 87 | +>foo : Symbol(foo, Decl(mappedTypeContextualTypesApplied.ts, 14, 9)) |
| 88 | +>s : Symbol(s, Decl(mappedTypeContextualTypesApplied.ts, 14, 13)) |
| 89 | + |
| 90 | +mapped2({foo: s => 42}); |
| 91 | +>mapped2 : Symbol(mapped2, Decl(mappedTypeContextualTypesApplied.ts, 4, 78)) |
| 92 | +>foo : Symbol(foo, Decl(mappedTypeContextualTypesApplied.ts, 15, 9)) |
| 93 | +>s : Symbol(s, Decl(mappedTypeContextualTypesApplied.ts, 15, 13)) |
| 94 | + |
| 95 | +mapped3({foo: s => 42}); |
| 96 | +>mapped3 : Symbol(mapped3, Decl(mappedTypeContextualTypesApplied.ts, 5, 79)) |
| 97 | +>foo : Symbol(foo, Decl(mappedTypeContextualTypesApplied.ts, 16, 9)) |
| 98 | +>s : Symbol(s, Decl(mappedTypeContextualTypesApplied.ts, 16, 13)) |
| 99 | + |
| 100 | +mapped4({foo: s => 42}); |
| 101 | +>mapped4 : Symbol(mapped4, Decl(mappedTypeContextualTypesApplied.ts, 6, 81)) |
| 102 | +>foo : Symbol(foo, Decl(mappedTypeContextualTypesApplied.ts, 17, 9)) |
| 103 | +>s : Symbol(s, Decl(mappedTypeContextualTypesApplied.ts, 17, 13)) |
| 104 | + |
| 105 | +mapped5({foo: s => 42}); |
| 106 | +>mapped5 : Symbol(mapped5, Decl(mappedTypeContextualTypesApplied.ts, 7, 73)) |
| 107 | +>foo : Symbol(foo, Decl(mappedTypeContextualTypesApplied.ts, 18, 9)) |
| 108 | +>s : Symbol(s, Decl(mappedTypeContextualTypesApplied.ts, 18, 13)) |
| 109 | + |
| 110 | +mapped6({foo: s => 42}); |
| 111 | +>mapped6 : Symbol(mapped6, Decl(mappedTypeContextualTypesApplied.ts, 8, 86)) |
| 112 | +>foo : Symbol(foo, Decl(mappedTypeContextualTypesApplied.ts, 19, 9)) |
| 113 | +>s : Symbol(s, Decl(mappedTypeContextualTypesApplied.ts, 19, 13)) |
| 114 | + |
| 115 | +mapped7({foo: s => 42}); |
| 116 | +>mapped7 : Symbol(mapped7, Decl(mappedTypeContextualTypesApplied.ts, 9, 78)) |
| 117 | +>foo : Symbol(foo, Decl(mappedTypeContextualTypesApplied.ts, 20, 9)) |
| 118 | +>s : Symbol(s, Decl(mappedTypeContextualTypesApplied.ts, 20, 13)) |
| 119 | + |
| 120 | +mapped8({foo: s => 42}); |
| 121 | +>mapped8 : Symbol(mapped8, Decl(mappedTypeContextualTypesApplied.ts, 10, 81)) |
| 122 | +>foo : Symbol(foo, Decl(mappedTypeContextualTypesApplied.ts, 21, 9)) |
| 123 | +>s : Symbol(s, Decl(mappedTypeContextualTypesApplied.ts, 21, 13)) |
| 124 | + |
| 125 | +mapped9({foo: s => 42}); |
| 126 | +>mapped9 : Symbol(mapped9, Decl(mappedTypeContextualTypesApplied.ts, 11, 77)) |
| 127 | +>foo : Symbol(foo, Decl(mappedTypeContextualTypesApplied.ts, 22, 9)) |
| 128 | +>s : Symbol(s, Decl(mappedTypeContextualTypesApplied.ts, 22, 13)) |
| 129 | + |
0 commit comments