@@ -18834,7 +18834,7 @@ namespace ts {
18834
18834
node.kind === SyntaxKind.SetAccessor) {
18835
18835
// The `descriptor` for a method decorator will be a `TypedPropertyDescriptor<T>`
18836
18836
// for the type of the member.
18837
- const propertyType = getTypeOfNode(node)!; // TODO: GH#18217
18837
+ const propertyType = getTypeOfNode(node);
18838
18838
return createTypedPropertyDescriptorType(propertyType);
18839
18839
}
18840
18840
@@ -21849,7 +21849,7 @@ namespace ts {
21849
21849
else {
21850
21850
const leadingError = () => chainDiagnosticMessages(/*details*/ undefined, Diagnostics.A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type);
21851
21851
checkTypeAssignableTo(typePredicate.type,
21852
- getTypeOfNode(parent.parameters[typePredicate.parameterIndex])!, // TODO: GH#18217
21852
+ getTypeOfNode(parent.parameters[typePredicate.parameterIndex]),
21853
21853
node.type,
21854
21854
/*headMessage*/ undefined,
21855
21855
leadingError);
@@ -23181,7 +23181,7 @@ namespace ts {
23181
23181
case SyntaxKind.MethodDeclaration:
23182
23182
case SyntaxKind.GetAccessor:
23183
23183
case SyntaxKind.SetAccessor:
23184
- const methodType = getTypeOfNode(node.parent)!; // TODO: GH#18217
23184
+ const methodType = getTypeOfNode(node.parent);
23185
23185
const descriptorType = createTypedPropertyDescriptorType(methodType);
23186
23186
expectedReturnType = getUnionType([descriptorType, voidType]);
23187
23187
break;
@@ -27120,7 +27120,7 @@ namespace ts {
27120
27120
resolveEntityName(node.propertyName || node.name, SymbolFlags.Value | SymbolFlags.Type | SymbolFlags.Namespace | SymbolFlags.Alias);
27121
27121
}
27122
27122
27123
- function getTypeOfNode(node: Node): Type | undefined {
27123
+ function getTypeOfNode(node: Node): Type {
27124
27124
if (node.flags & NodeFlags.InWithStatement) {
27125
27125
// We cannot answer semantic questions within a with block, do not proceed any further
27126
27126
return errorType;
@@ -27159,7 +27159,7 @@ namespace ts {
27159
27159
27160
27160
if (isTypeDeclarationName(node)) {
27161
27161
const symbol = getSymbolAtLocation(node);
27162
- return symbol && getDeclaredTypeOfSymbol(symbol);
27162
+ return symbol ? getDeclaredTypeOfSymbol(symbol) : errorType ;
27163
27163
}
27164
27164
27165
27165
if (isDeclaration(node)) {
@@ -27170,11 +27170,11 @@ namespace ts {
27170
27170
27171
27171
if (isDeclarationNameOrImportPropertyName(node)) {
27172
27172
const symbol = getSymbolAtLocation(node);
27173
- return symbol && getTypeOfSymbol(symbol);
27173
+ return symbol ? getTypeOfSymbol(symbol) : errorType ;
27174
27174
}
27175
27175
27176
27176
if (isBindingPattern(node)) {
27177
- return getTypeForVariableLikeDeclaration(node.parent, /*includeOptionality*/ true);
27177
+ return getTypeForVariableLikeDeclaration(node.parent, /*includeOptionality*/ true) || errorType ;
27178
27178
}
27179
27179
27180
27180
if (isInRightSideOfImportOrExportAssignment(<Identifier>node)) {
0 commit comments