使用 typeof 定义类型
Using typeof to define a type
我不认识显示的 TypeScript 语法 here:
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 应该有更好的方法吗?为什么要这样呢?
当使用 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'.
另请参阅:
我不认识显示的 TypeScript 语法 here:
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 应该有更好的方法吗?为什么要这样呢?
当使用 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'.
另请参阅: