【问题标题】:What is the purpose of "typeof" in members in TypeScript typings?TypeScript 类型中成员中“typeof”的目的是什么?
【发布时间】:2019-10-30 06:58:27
【问题描述】:

Electron 打字稿定义包含以下接口:

interface MainInterface extends CommonInterface {
  // I understand these
  app: App;
  autoUpdater: AutoUpdater;
  // But not these
  BrowserView: typeof BrowserView;
  BrowserWindow: typeof BrowserWindow;
  ClientRequest: typeof ClientRequest;
  ...
}

typeof XX 在这种情况下是什么意思? AFAIK typeof 返回类型的字符串名称,例如以上等价于

BrowserView: "BrowserView";

如果是这种情况,那么使用typeof的成员定义的目的是什么?

【问题讨论】:

    标签: typescript electron typescript-typings .d.ts


    【解决方案1】:

    如果在上面示例中的类型注释中,typeof 运算符会给出值的类型。如果应用于变量,它会给出变量的类型。如果应用于类,它会给出类的类型(不是实例类型,而是表示类构造函数和静态方法的类型。

    class Foo {
      static method(){}
    }
    
    let foo: typeof Foo;
    foo.method();
    new foo()
    
    let o = 1
    let oo: typeof o
    

    【讨论】:

      【解决方案2】:

      在 Typescript 中,定义一个类会产生两个接口:

      1. 类接口
      2. 实例接口

      麻烦的是,只有实例接口获取类的名称。为了访问类接口(执行new MyClass()MyClass.staticProperty 之类的操作),您必须使用typeof

      【讨论】:

        猜你喜欢
        • 2019-03-11
        • 2019-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-19
        • 2019-08-04
        • 2021-07-06
        相关资源
        最近更新 更多