@@ -229,68 +229,96 @@ function ft13(s: string, cond: boolean) {
229
229
type T0 = string | `${number}px`;
230
230
>T0 : Symbol(T0, Decl(templateLiteralTypes2.ts, 60, 1))
231
231
232
+ function ft14(t: `foo${number}`) {
233
+ >ft14 : Symbol(ft14, Decl(templateLiteralTypes2.ts, 62, 33))
234
+ >t : Symbol(t, Decl(templateLiteralTypes2.ts, 64, 14))
235
+
236
+ let x1: string = t;
237
+ >x1 : Symbol(x1, Decl(templateLiteralTypes2.ts, 65, 7))
238
+ >t : Symbol(t, Decl(templateLiteralTypes2.ts, 64, 14))
239
+
240
+ let x2: String = t;
241
+ >x2 : Symbol(x2, Decl(templateLiteralTypes2.ts, 66, 7))
242
+ >String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
243
+ >t : Symbol(t, Decl(templateLiteralTypes2.ts, 64, 14))
244
+
245
+ let x3: Object = t;
246
+ >x3 : Symbol(x3, Decl(templateLiteralTypes2.ts, 67, 7))
247
+ >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
248
+ >t : Symbol(t, Decl(templateLiteralTypes2.ts, 64, 14))
249
+
250
+ let x4: {} = t;
251
+ >x4 : Symbol(x4, Decl(templateLiteralTypes2.ts, 68, 7))
252
+ >t : Symbol(t, Decl(templateLiteralTypes2.ts, 64, 14))
253
+
254
+ let x6: { length: number } = t;
255
+ >x6 : Symbol(x6, Decl(templateLiteralTypes2.ts, 69, 7))
256
+ >length : Symbol(length, Decl(templateLiteralTypes2.ts, 69, 13))
257
+ >t : Symbol(t, Decl(templateLiteralTypes2.ts, 64, 14))
258
+ }
259
+
232
260
// Repro from #41631
233
261
234
262
declare function takesLiteral<T extends string>(literal: T): T extends `foo.bar.${infer R}` ? R : unknown;
235
- >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 62, 33 ))
236
- >T : Symbol(T, Decl(templateLiteralTypes2.ts, 66 , 30))
237
- >literal : Symbol(literal, Decl(templateLiteralTypes2.ts, 66 , 48))
238
- >T : Symbol(T, Decl(templateLiteralTypes2.ts, 66 , 30))
239
- >T : Symbol(T, Decl(templateLiteralTypes2.ts, 66 , 30))
240
- >R : Symbol(R, Decl(templateLiteralTypes2.ts, 66 , 87))
241
- >R : Symbol(R, Decl(templateLiteralTypes2.ts, 66 , 87))
263
+ >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 70, 1 ))
264
+ >T : Symbol(T, Decl(templateLiteralTypes2.ts, 74 , 30))
265
+ >literal : Symbol(literal, Decl(templateLiteralTypes2.ts, 74 , 48))
266
+ >T : Symbol(T, Decl(templateLiteralTypes2.ts, 74 , 30))
267
+ >T : Symbol(T, Decl(templateLiteralTypes2.ts, 74 , 30))
268
+ >R : Symbol(R, Decl(templateLiteralTypes2.ts, 74 , 87))
269
+ >R : Symbol(R, Decl(templateLiteralTypes2.ts, 74 , 87))
242
270
243
271
const t1 = takesLiteral("foo.bar.baz"); // "baz"
244
- >t1 : Symbol(t1, Decl(templateLiteralTypes2.ts, 68 , 5))
245
- >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 62, 33 ))
272
+ >t1 : Symbol(t1, Decl(templateLiteralTypes2.ts, 76 , 5))
273
+ >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 70, 1 ))
246
274
247
275
const id2 = "foo.bar.baz";
248
- >id2 : Symbol(id2, Decl(templateLiteralTypes2.ts, 69 , 5))
276
+ >id2 : Symbol(id2, Decl(templateLiteralTypes2.ts, 77 , 5))
249
277
250
278
const t2 = takesLiteral(id2); // "baz"
251
- >t2 : Symbol(t2, Decl(templateLiteralTypes2.ts, 70 , 5))
252
- >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 62, 33 ))
253
- >id2 : Symbol(id2, Decl(templateLiteralTypes2.ts, 69 , 5))
279
+ >t2 : Symbol(t2, Decl(templateLiteralTypes2.ts, 78 , 5))
280
+ >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 70, 1 ))
281
+ >id2 : Symbol(id2, Decl(templateLiteralTypes2.ts, 77 , 5))
254
282
255
283
declare const someString: string;
256
- >someString : Symbol(someString, Decl(templateLiteralTypes2.ts, 72 , 13))
284
+ >someString : Symbol(someString, Decl(templateLiteralTypes2.ts, 80 , 13))
257
285
258
286
const t3 = takesLiteral(`foo.bar.${someString}`); // string
259
- >t3 : Symbol(t3, Decl(templateLiteralTypes2.ts, 73 , 5))
260
- >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 62, 33 ))
261
- >someString : Symbol(someString, Decl(templateLiteralTypes2.ts, 72 , 13))
287
+ >t3 : Symbol(t3, Decl(templateLiteralTypes2.ts, 81 , 5))
288
+ >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 70, 1 ))
289
+ >someString : Symbol(someString, Decl(templateLiteralTypes2.ts, 80 , 13))
262
290
263
291
const id4 = `foo.bar.${someString}`;
264
- >id4 : Symbol(id4, Decl(templateLiteralTypes2.ts, 75 , 5))
265
- >someString : Symbol(someString, Decl(templateLiteralTypes2.ts, 72 , 13))
292
+ >id4 : Symbol(id4, Decl(templateLiteralTypes2.ts, 83 , 5))
293
+ >someString : Symbol(someString, Decl(templateLiteralTypes2.ts, 80 , 13))
266
294
267
295
const t4 = takesLiteral(id4); // string
268
- >t4 : Symbol(t4, Decl(templateLiteralTypes2.ts, 76 , 5))
269
- >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 62, 33 ))
270
- >id4 : Symbol(id4, Decl(templateLiteralTypes2.ts, 75 , 5))
296
+ >t4 : Symbol(t4, Decl(templateLiteralTypes2.ts, 84 , 5))
297
+ >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 70, 1 ))
298
+ >id4 : Symbol(id4, Decl(templateLiteralTypes2.ts, 83 , 5))
271
299
272
300
declare const someUnion: 'abc' | 'def' | 'ghi';
273
- >someUnion : Symbol(someUnion, Decl(templateLiteralTypes2.ts, 78 , 13))
301
+ >someUnion : Symbol(someUnion, Decl(templateLiteralTypes2.ts, 86 , 13))
274
302
275
303
const t5 = takesLiteral(`foo.bar.${someUnion}`); // "abc" | "def" | "ghi"
276
- >t5 : Symbol(t5, Decl(templateLiteralTypes2.ts, 79 , 5))
277
- >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 62, 33 ))
278
- >someUnion : Symbol(someUnion, Decl(templateLiteralTypes2.ts, 78 , 13))
304
+ >t5 : Symbol(t5, Decl(templateLiteralTypes2.ts, 87 , 5))
305
+ >takesLiteral : Symbol(takesLiteral, Decl(templateLiteralTypes2.ts, 70, 1 ))
306
+ >someUnion : Symbol(someUnion, Decl(templateLiteralTypes2.ts, 86 , 13))
279
307
280
308
// Repro from #41732
281
309
282
310
const pixelValue: number = 22;
283
- >pixelValue : Symbol(pixelValue, Decl(templateLiteralTypes2.ts, 83 , 5))
311
+ >pixelValue : Symbol(pixelValue, Decl(templateLiteralTypes2.ts, 91 , 5))
284
312
285
313
type PixelValueType = `${number}px`;
286
- >PixelValueType : Symbol(PixelValueType, Decl(templateLiteralTypes2.ts, 83 , 30))
314
+ >PixelValueType : Symbol(PixelValueType, Decl(templateLiteralTypes2.ts, 91 , 30))
287
315
288
316
const pixelString: PixelValueType = `22px`;
289
- >pixelString : Symbol(pixelString, Decl(templateLiteralTypes2.ts, 87 , 5))
290
- >PixelValueType : Symbol(PixelValueType, Decl(templateLiteralTypes2.ts, 83 , 30))
317
+ >pixelString : Symbol(pixelString, Decl(templateLiteralTypes2.ts, 95 , 5))
318
+ >PixelValueType : Symbol(PixelValueType, Decl(templateLiteralTypes2.ts, 91 , 30))
291
319
292
320
const pixelStringWithTemplate: PixelValueType = `${pixelValue}px`;
293
- >pixelStringWithTemplate : Symbol(pixelStringWithTemplate, Decl(templateLiteralTypes2.ts, 89 , 5))
294
- >PixelValueType : Symbol(PixelValueType, Decl(templateLiteralTypes2.ts, 83 , 30))
295
- >pixelValue : Symbol(pixelValue, Decl(templateLiteralTypes2.ts, 83 , 5))
321
+ >pixelStringWithTemplate : Symbol(pixelStringWithTemplate, Decl(templateLiteralTypes2.ts, 97 , 5))
322
+ >PixelValueType : Symbol(PixelValueType, Decl(templateLiteralTypes2.ts, 91 , 30))
323
+ >pixelValue : Symbol(pixelValue, Decl(templateLiteralTypes2.ts, 91 , 5))
296
324
0 commit comments