@@ -25446,7 +25446,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
25446
25446
arraysEqual((source as TemplateLiteralType).texts, target.texts) ? map((source as TemplateLiteralType).types, (s, i) => {
25447
25447
return isTypeAssignableTo(getBaseConstraintOrType(s), getBaseConstraintOrType(target.types[i])) ? s : getStringLikeTypeForType(s);
25448
25448
}) :
25449
- inferFromLiteralPartsToTemplateLiteral((source as TemplateLiteralType).texts, (source as TemplateLiteralType).types, target) :
25449
+ inferFromLiteralPartsToTemplateLiteral((source as TemplateLiteralType).texts, (source as TemplateLiteralType).types, target) :
25450
25450
undefined;
25451
25451
}
25452
25452
@@ -26060,16 +26060,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
26060
26060
// allowed template literal placeholder types, infer from a literal type corresponding to the constraint.
26061
26061
if (source.flags & TypeFlags.StringLiteral && target.flags & TypeFlags.TypeVariable) {
26062
26062
const inferenceContext = getInferenceInfoForType(target);
26063
- // andarist here???
26064
- // declare function foo1<V extends string>(arg: `*${V}*`): V;
26065
- // declare const n: number
26066
- // let x5 = foo1(`*${n}*` as const);
26067
-
26068
- // type Foo1<T> = T extends `*${infer U}*` ? U : never;
26069
-
26070
- // type T05 = Foo1<`*${number}*`>;
26071
-
26072
- // type T06 = Foo1<`*${bigint}*`>;
26073
26063
const constraint = inferenceContext ? getBaseConstraintOfType(inferenceContext.typeParameter) : undefined;
26074
26064
if (constraint && !isTypeAny(constraint)) {
26075
26065
const constraintTypes = constraint.flags & TypeFlags.Union ? (constraint as UnionType).types : [constraint];
0 commit comments