Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 366cc3e

Browse files
committed
Push undefined suppression into typeToTypeNodeHelper
1 parent 1347f67 commit 366cc3e

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

src/compiler/checker.ts

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3019,7 +3019,7 @@ namespace ts {
30193019
};
30203020
}
30213021

3022-
function typeToTypeNodeHelper(type: Type, context: NodeBuilderContext): TypeNode | undefined {
3022+
function typeToTypeNodeHelper(type: Type, context: NodeBuilderContext): TypeNode {
30233023
if (cancellationToken && cancellationToken.throwIfCancellationRequested) {
30243024
cancellationToken.throwIfCancellationRequested();
30253025
}
@@ -3028,7 +3028,7 @@ namespace ts {
30283028

30293029
if (!type) {
30303030
context.encounteredError = true;
3031-
return undefined;
3031+
return undefined!; // TODO: GH#18217
30323032
}
30333033

30343034
if (type.flags & TypeFlags.Any) {
@@ -3133,7 +3133,7 @@ namespace ts {
31333133
if (!context.encounteredError && !(context.flags & NodeBuilderFlags.AllowEmptyUnionOrIntersection)) {
31343134
context.encounteredError = true;
31353135
}
3136-
return undefined;
3136+
return undefined!; // TODO: GH#18217
31373137
}
31383138
}
31393139
if (objectFlags & (ObjectFlags.Anonymous | ObjectFlags.Mapped)) {
@@ -3143,29 +3143,29 @@ namespace ts {
31433143
}
31443144
if (type.flags & TypeFlags.Index) {
31453145
const indexedType = (<IndexType>type).type;
3146-
const indexTypeNode = typeToTypeNodeHelper(indexedType, context)!; // TODO: GH#18217
3146+
const indexTypeNode = typeToTypeNodeHelper(indexedType, context);
31473147
return createTypeOperatorNode(indexTypeNode);
31483148
}
31493149
if (type.flags & TypeFlags.IndexedAccess) {
3150-
const objectTypeNode = typeToTypeNodeHelper((<IndexedAccessType>type).objectType, context)!; // TODO: GH#18217
3151-
const indexTypeNode = typeToTypeNodeHelper((<IndexedAccessType>type).indexType, context)!;
3150+
const objectTypeNode = typeToTypeNodeHelper((<IndexedAccessType>type).objectType, context);
3151+
const indexTypeNode = typeToTypeNodeHelper((<IndexedAccessType>type).indexType, context);
31523152
return createIndexedAccessTypeNode(objectTypeNode, indexTypeNode);
31533153
}
31543154
if (type.flags & TypeFlags.Conditional) {
3155-
const checkTypeNode = typeToTypeNodeHelper((<ConditionalType>type).checkType, context)!; // TODO: GH#18217
3155+
const checkTypeNode = typeToTypeNodeHelper((<ConditionalType>type).checkType, context);
31563156
const saveInferTypeParameters = context.inferTypeParameters;
31573157
context.inferTypeParameters = (<ConditionalType>type).root.inferTypeParameters;
3158-
const extendsTypeNode = typeToTypeNodeHelper((<ConditionalType>type).extendsType, context)!;
3158+
const extendsTypeNode = typeToTypeNodeHelper((<ConditionalType>type).extendsType, context);
31593159
context.inferTypeParameters = saveInferTypeParameters;
3160-
const trueTypeNode = typeToTypeNodeHelper(getTrueTypeFromConditionalType(<ConditionalType>type), context)!;
3161-
const falseTypeNode = typeToTypeNodeHelper(getFalseTypeFromConditionalType(<ConditionalType>type), context)!;
3160+
const trueTypeNode = typeToTypeNodeHelper(getTrueTypeFromConditionalType(<ConditionalType>type), context);
3161+
const falseTypeNode = typeToTypeNodeHelper(getFalseTypeFromConditionalType(<ConditionalType>type), context);
31623162
return createConditionalTypeNode(checkTypeNode, extendsTypeNode, trueTypeNode, falseTypeNode);
31633163
}
31643164
if (type.flags & TypeFlags.Substitution) {
31653165
return typeToTypeNodeHelper((<SubstitutionType>type).typeVariable, context);
31663166
}
31673167

3168-
Debug.fail("Should be unreachable.");
3168+
return Debug.fail("Should be unreachable.");
31693169

31703170
function createMappedTypeNodeFromType(type: MappedType) {
31713171
Debug.assert(!!(type.flags & TypeFlags.Object));
@@ -3281,15 +3281,15 @@ namespace ts {
32813281
return entityName;
32823282
}
32833283

3284-
function typeReferenceToTypeNode(type: TypeReference) {
3284+
function typeReferenceToTypeNode(type: TypeReference): TypeNode {
32853285
const typeArguments: Type[] = type.typeArguments || emptyArray;
32863286
if (type.target === globalArrayType) {
32873287
if (context.flags & NodeBuilderFlags.WriteArrayAsGenericType) {
3288-
const typeArgumentNode = typeToTypeNodeHelper(typeArguments[0], context)!;
3288+
const typeArgumentNode = typeToTypeNodeHelper(typeArguments[0], context);
32893289
return createTypeReferenceNode("Array", [typeArgumentNode]);
32903290
}
32913291

3292-
const elementType = typeToTypeNodeHelper(typeArguments[0], context)!;
3292+
const elementType = typeToTypeNodeHelper(typeArguments[0], context);
32933293
return createArrayTypeNode(elementType);
32943294
}
32953295
else if (type.target.objectFlags & ObjectFlags.Tuple) {
@@ -3303,7 +3303,7 @@ namespace ts {
33033303
return createTupleTypeNode([]);
33043304
}
33053305
context.encounteredError = true;
3306-
return undefined;
3306+
return undefined!; // TODO: GH#18217
33073307
}
33083308
else if (context.flags & NodeBuilderFlags.WriteClassExpressionAsTypeLiteral &&
33093309
type.symbol.valueDeclaration &&
@@ -3498,7 +3498,7 @@ namespace ts {
34983498
/*questionToken*/ undefined,
34993499
indexerTypeNode,
35003500
/*initializer*/ undefined);
3501-
const typeNode = typeToTypeNodeHelper(indexInfo.type || anyType, context)!; // TODO: GH#18217
3501+
const typeNode = typeToTypeNodeHelper(indexInfo.type || anyType, context);
35023502
if (!indexInfo.type && !(context.flags & NodeBuilderFlags.AllowEmptyIndexInfoType)) {
35033503
context.encounteredError = true;
35043504
}
@@ -3513,7 +3513,7 @@ namespace ts {
35133513
let typeParameters: TypeParameterDeclaration[] | undefined;
35143514
let typeArguments: TypeNode[] | undefined;
35153515
if (context.flags & NodeBuilderFlags.WriteTypeArgumentsOfSignature && signature.target && signature.mapper && signature.target.typeParameters) {
3516-
typeArguments = signature.target.typeParameters.map(parameter => typeToTypeNodeHelper(instantiateType(parameter, signature.mapper!), context)!); // TODO: GH#18217
3516+
typeArguments = signature.target.typeParameters.map(parameter => typeToTypeNodeHelper(instantiateType(parameter, signature.mapper!), context));
35173517
}
35183518
else {
35193519
typeParameters = signature.typeParameters && signature.typeParameters.map(parameter => typeParameterToDeclaration(parameter, context));
@@ -3531,7 +3531,7 @@ namespace ts {
35313531
const parameterName = typePredicate.kind === TypePredicateKind.Identifier ?
35323532
setEmitFlags(createIdentifier(typePredicate.parameterName), EmitFlags.NoAsciiEscaping) :
35333533
createThisTypeNode();
3534-
const typeNode = typeToTypeNodeHelper(typePredicate.type, context)!;
3534+
const typeNode = typeToTypeNodeHelper(typePredicate.type, context);
35353535
returnTypeNode = createTypePredicateNode(parameterName, typeNode);
35363536
}
35373537
else {

0 commit comments

Comments
 (0)