Open
Description
Bug Report
π Search Terms
never extends ${infer P}
yield different result than never extends ${infer P}/
π Version & Regression Information
TS 4.7
type is not what expected
β― Playground Link
π» Code
type a = never extends `${infer P}` ? P : 1 // never
// ^?
type b = never extends `${infer P}/` ? P : 2 // string
// ^?
type a1 = never extends `${infer P extends string}` ? P : 1 // never
// ^?
type b1 = never extends `${infer P extends string}/` ? P : 2 // string
// ^?
type a2 = never extends `${infer P extends number}` ? P : 1 // never
// ^?
type b2 = never extends `${infer P extends number}/` ? P : 2 // number
// ^?
type a3 = never extends `${infer P extends null}` ? P : 1 // never
// ^?
type b3 = never extends `${infer P extends null}/` ? P : 2 // null
// ^?
type a4 = never extends `${infer P extends undefined}` ? P : 1 // never
// ^?
type b4 = never extends `${infer P extends undefined}/` ? P : 2 // undefined
// ^?
type a5 = never extends `${infer P extends boolean}` ? P : 1 // never
// ^?
type b5 = never extends `${infer P extends boolean}/` ? P : 2 // boolean
// ^?
type a6 = never extends `${infer P extends bigint}` ? P : 1 // never
// ^?
type b6 = never extends `${infer P extends bigint}/` ? P : 2 // bigint
// ^?
π Actual behavior
- never extends
${infer P}/
yield the same result as never extends${infer P}
- never extends
${infer P extends X}/
yield X but never extends${infer P extends X}
always yield never
π Expected behavior
- never extends
${infer P}/
should yield never like never extends${infer P}
- never extends
${infer P extends X}/
yield never like never extends${infer P extends X}
are these intended behaviors? kind of unintuitive