首页 > 解决方案 > VSCode/TypeScript 中是否有“使用显式类型重构”?

问题描述

有没有办法可以将推断类型的完整路径复制到剪贴板?

例子:

class App { listen(){ const server = expressApp.listen()}}

我想成为server会员而不是本地人,但我不知道类型。是否有 1 点击获取类型?

我认为 C# 有这个:https ://docs.microsoft.com/en-us/visualstudio/ide/reference/convert-var-to-explicit-type?view=vs-2019

标签: typescriptvisual-studio-code

解决方案


编辑:

要获取函数返回的类型,您可以使用ReturnType类型构造函数。将它与使用括号表示法的类型索引结合起来,您可以找到接口成员的返回类型,如下所示:

type Server = ReturnType<Express['listen']>;

Node 标准模块http公开了一种名为Server. 由于 Express 使用此类型作为其服务器侦听器,因此您可以使用它在您的成员上键入侦听器,如下所示:

import type { Express } from "express";
import type { Server } from "http";

class App {
  constructor(app: Express) {
    this.listener = app.listen();
  }
  private listener: Server;
}

如果您想像在上面的代码片段中那样使用listen()带有未初始化server变量的自定义函数,您只需将该属性设为可选:

class App {
  private server?: Server;
  listen(expressApp: Express) {
    this.server = expressApp.listen()
  }
}

推荐阅读