Skip to content

Commit 59b6f78

Browse files
authored
Revert "Add numeric constraint to type parameter of mapped types with… (microsoft#57076)
1 parent d69757e commit 59b6f78

17 files changed

+224
-437
lines changed

src/compiler/checker.ts

+2-10
Original file line numberDiff line numberDiff line change
@@ -13850,14 +13850,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
1385013850
}
1385113851

1385213852
function forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(type: Type, include: TypeFlags, stringsOnly: boolean, cb: (keyType: Type) => void) {
13853-
if (isTupleType(type)) {
13854-
forEachType(getUnionType(getElementTypes(type).map((_, i) => getStringLiteralType("" + i))), cb);
13855-
return;
13856-
}
13857-
if (isArrayType(type)) {
13858-
cb(numberType);
13859-
return;
13860-
}
1386113853
for (const prop of getPropertiesOfType(type)) {
1386213854
cb(getLiteralTypeFromProperty(prop, include));
1386313855
}
@@ -16250,8 +16242,8 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
1625016242
}
1625116243
}
1625216244
// Given a homomorphic mapped type { [K in keyof T]: XXX }, where T is constrained to an array or tuple type, in the
16253-
// template type XXX, K has an added constraint of number | `${number}`. The same is added in the optional name type.
16254-
else if (type.flags & TypeFlags.TypeParameter && parent.kind === SyntaxKind.MappedType && (node === (parent as MappedTypeNode).type || node === (parent as MappedTypeNode).nameType)) {
16245+
// template type XXX, K has an added constraint of number | `${number}`.
16246+
else if (type.flags & TypeFlags.TypeParameter && parent.kind === SyntaxKind.MappedType && node === (parent as MappedTypeNode).type) {
1625516247
const mappedType = getTypeFromTypeNode(parent as TypeNode) as MappedType;
1625616248
if (getTypeParameterFromMappedType(mappedType) === getActualTypeVariable(type)) {
1625716249
const typeParameter = getHomomorphicTypeVariable(mappedType);

tests/baselines/reference/mappedTypeHomomorphicTupleInstantiationNameTypeKeys.symbols

-36
This file was deleted.

tests/baselines/reference/mappedTypeHomomorphicTupleInstantiationNameTypeKeys.types

-20
This file was deleted.

tests/baselines/reference/mappedTypeTupleConstraintTypeParameterInNameType.symbols

-149
This file was deleted.

tests/baselines/reference/mappedTypeTupleConstraintTypeParameterInNameType.types

-129
This file was deleted.

0 commit comments

Comments
 (0)