电子打字稿定义包含以下接口:
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
的成员定义的目的是什么?
答案 0 :(得分:1)
如果在上面示例中的类型注释中,typeof
运算符将给出值的类型。如果应用于变量,它将给出变量的类型。如果应用于类,它将给出类的类型(不是实例类型,而是代表类构造函数和静态方法的类型。
class Foo {
static method(){}
}
let foo: typeof Foo;
foo.method();
new foo()
let o = 1
let oo: typeof o
答案 1 :(得分:1)
在Typescript中,定义类会产生两个接口:
麻烦的是,只有实例接口才能获得类的名称。为了访问类接口(执行诸如new MyClass()
或MyClass.staticProperty
之类的操作,您必须使用typeof
。