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 文件的一个引用。
