diff --git a/src/services/goToDefinition.ts b/src/services/goToDefinition.ts index f64a2469156..05bd62e363f 100644 --- a/src/services/goToDefinition.ts +++ b/src/services/goToDefinition.ts @@ -273,18 +273,21 @@ namespace ts.GoToDefinition { function createDefinitionInfoFromName(declaration: Declaration, symbolKind: ScriptElementKind, symbolName: string, containerName: string): DefinitionInfo { const name = getNameOfDeclaration(declaration) || declaration; const sourceFile = name.getSourceFile(); - const declarationNode = FindAllReferences.getDeclarationForDeclarationSpan(declaration)!; - return { + const result: DefinitionInfo = { fileName: sourceFile.fileName, textSpan: createTextSpanFromNode(name, sourceFile), kind: symbolKind, name: symbolName, containerKind: undefined!, // TODO: GH#18217 containerName, - declarationSpan: FindAllReferences.isDeclarationNodeWithStartAndEnd(declarationNode) ? - createTextSpanFromNode(declarationNode.start, sourceFile, declarationNode.end) : - createTextSpanFromNode(declarationNode, sourceFile), }; + const declarationNode = FindAllReferences.getDeclarationForDeclarationSpan(declaration); + if (declarationNode) { + result.declarationSpan = FindAllReferences.isDeclarationNodeWithStartAndEnd(declarationNode) ? + createTextSpanFromNode(declarationNode.start, sourceFile, declarationNode.end) : + createTextSpanFromNode(declarationNode, sourceFile); + } + return result; } function createDefinitionFromSignatureDeclaration(typeChecker: TypeChecker, decl: SignatureDeclaration): DefinitionInfo {