diff --git a/src/services/goToDefinition.ts b/src/services/goToDefinition.ts
index eaee0afdd1e..0641c814cac 100644
--- a/src/services/goToDefinition.ts
+++ b/src/services/goToDefinition.ts
@@ -156,10 +156,16 @@ namespace ts.GoToDefinition {
return undefined;
}
- // TODO: Add textSpan for triple slash references (file and type).
- const comment = findReferenceInPosition(sourceFile.referencedFiles, position);
- if (comment && tryResolveScriptReference(program, sourceFile, comment) || findReferenceInPosition(sourceFile.typeReferenceDirectives, position)) {
- return { definitions, textSpan: undefined };
+ let comment = findReferenceInPosition(sourceFile.referencedFiles, position);
+ if (!comment || !tryResolveScriptReference(program, sourceFile, comment)) {
+ comment = findReferenceInPosition(sourceFile.typeReferenceDirectives, position);
+ }
+
+ if (comment) {
+ return {
+ definitions,
+ textSpan: createTextSpanFromBounds(comment.pos, comment.end)
+ };
}
const node = getTouchingPropertyName(sourceFile, position, /*includeJsDocComment*/ true);
diff --git a/tests/cases/fourslash/goToDefinitionSourceUnit.ts b/tests/cases/fourslash/goToDefinitionSourceUnit.ts
index e66b5ef7960..d823b366eee 100644
--- a/tests/cases/fourslash/goToDefinitionSourceUnit.ts
+++ b/tests/cases/fourslash/goToDefinitionSourceUnit.ts
@@ -4,7 +4,7 @@
//// //MyFile Comments
//// //more comments
//// ///
-//// ///
+//// ///
////
//// class clsInOverload {
//// static fnOverload();
diff --git a/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts b/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts
index ad02bb9d851..532390fb35e 100644
--- a/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts
+++ b/tests/cases/fourslash/goToDefinitionTypeReferenceDirective.ts
@@ -5,7 +5,7 @@
/////*0*/declare let $: {x: number};
// @Filename: src/app.ts
-//// ///
+//// ///
//// $.x;
verify.goToDefinition("1", "0");
diff --git a/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts b/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts
index ad02bb9d851..532390fb35e 100644
--- a/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts
+++ b/tests/cases/fourslash/shims-pp/goToDefinitionTypeReferenceDirective.ts
@@ -5,7 +5,7 @@
/////*0*/declare let $: {x: number};
// @Filename: src/app.ts
-//// ///
+//// ///
//// $.x;
verify.goToDefinition("1", "0");
diff --git a/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts b/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts
index 4669b7f62e9..f318de7c25e 100644
--- a/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts
+++ b/tests/cases/fourslash/shims/goToDefinitionTypeReferenceDirective.ts
@@ -5,7 +5,7 @@
/////*0*/declare let $: {x: number};
// @Filename: src/app.ts
-//// ///
+//// ///
//// $.x;
verify.goToDefinition("1", "0");