TypeScript TSServer: 查找每个重载函数类型的全部引用 ```markdown TSServer: 查找每个重载函数类型的全部引用 ```

1sbrub3j  于 6个月前  发布在  TypeScript
关注(0)|答案(2)|浏览(69)

搜索词

查找引用、重载、函数、重载函数

建议

提供一种搜索具有特定重载类型的函数引用的机制

用例

在当前实现中,查找所有重载函数的引用会显示每个重载的所有引用。有时我们需要仅查找特定重载的引用(例如,某个重载已被弃用,我们希望更新所有用例)

示例

/**
* @deprecated
**/
declare function fn():void; // overload 1
declare function fn(param:string):number; // overload  2

fn(); // use 1

const x = fn('a'); // use 2
const y = fn('b'); // use 3

查找 overload 1 的引用应列出 use 1
查找 overload 2 的引用应列出 use 2use 3

检查清单

我的建议满足以下准则:

  • 这不会对现有的 TypeScript/JavaScript 代码造成破坏性更改
  • 这不会改变现有 JavaScript 代码的运行时行为
  • 这可以在不根据表达式的类型发出不同的 JS 的情况下实现
  • 这不是一个运行时特性(例如库功能、带有 JavaScript 输出的非 ECMAScript 语法等)
  • 这个特性将与 TypeScript's Design Goals 的其他部分保持一致。
rhfm7lfc

rhfm7lfc1#

为了给出一个实际的例子,rxjsforkJoin有两个重载版本,其中一个接受展开参数,另一个作为参数数组。以下是简化的函数签名:

/**
*@deprecated
**/
forkJoin(..args:Observable[]):Observable;
forkJoin(args:Observable[]):Observable;

展开变体是deprecated,在我们的代码库中我们同时使用了这两种变体。我想找到所有使用展开变体的用例。

相关问题