网站搜索

typescript - “查找所有引用”只有在依赖文件打开时才有效


我正在使用 VS 2012/TypeScript 0.9。每当我尝试在 TypeScript 文件中使用“查找所有引用”功能时,除非相关文件已打开,否则找不到任何引用。例如,考虑以下场景:

1) 在 file1.ts 中,我有一个名为 class1 的类 2) 在 file2.ts 中,我有一个名为 class2 的类,它使用了 class1

如果在 file1.ts 中我右键点击 class1 并选择“查找所有引用”,在 file2.ts 中不会找到任何引用,除非 file2.ts 已经打开。

我在想这是一个漏洞还是我这边的某些问题导致了这个问题。

谢谢

答案#1

这是当前按设计如此。在大多数项目中,你通常会有一个“核心”类型的文件,它直接或间接地引用项目中的其他 TypeScript 文件。我通常会保持我的“核心”文件打开,这样所有的查找所有引用和其他工具功能都能正常工作。

所以有一件事需要注意(上面提到过)是,你只需要打开一个间接引用你想要“检查”的文件的文件即可。

也就是说,如果你有:

A.ts

// Stuff

B.ts

/// <reference path="A.ts" />

C.ts

/// <reference path="B.ts" />

在 C.ts 中,你将能够找到 A.ts 的定义,因为 B.ts 引用了 A.ts。

答案#2

对 N. Taylor Mullen 的回答的补充信息(因为我还不能评论):

如果当前文件包含对所有其他文件的直接或间接引用,"查找所有引用" 不需要打开除当前文件之外的任何其他文件。我的文件结构如下:

A.ts

/// <reference path="References.ts" />

B.ts

/// <reference path="References.ts" />

C.ts

/// <reference path="References.ts" />

References.ts

/// <reference path="jquery.d.ts" />
/// <reference path="A.ts" />
/// <reference path="B.ts" />
/// <reference path="C.ts" />

我在这个示例中添加了 jquery.d.ts,以显示在 References.ts 中实际上引用了所有需要的模块或它们的定义文件。
我的 References.ts 包含大约 25 个引用,但其他每个文件只有对 reference.ts 文件的一个引用。