我无法识别here所示的TypeScript语法:
export var __platform_browser_private__: {
_DomAdapter?: typeof dom_adapter.DomAdapter; DomAdapter: typeof dom_adapter.DomAdapter;
_BrowserDomAdapter?: typeof browserDomAdapter.BrowserDomAdapter;
BrowserDomAdapter: typeof browserDomAdapter.BrowserDomAdapter;
getDOM: typeof dom_adapter.getDOM;
// ... shortened
} = {
DomAdapter: dom_adapter.DomAdapter,
BrowserDomAdapter: browserDomAdapter.BrowserDomAdapter,
getDOM: dom_adapter.getDOM,
// ... shortened
};
通常我只在JS中的if语句中使用typeof
,但我从未在TypeScript中使用typeof
来定义类型。
这确实是在TypeScript中定义类型的方法吗?如果是这样,这只是另一种设置类型的方法吗?这种语法在TypeScript中是惯用的,是否有文档? Angular应该有更好的方法吗?为什么这种方式超过另一个?
答案 0 :(得分:2)
使用typeof
分配类型时,类型将成为构造函数。构造函数是用于创建和初始化对象的特殊函数。
let ctor: typeof String;
ctor = String; // Works
ctor = "Some string"; // Error
let s: string;
s = "Some string"; // Works
上述错误为Type '"Some string"' is not assignable to type 'StringConstructor'.
另见: