据我了解,TypeScript“typeof”运算符执行类型查询,并允许您确保两个对象的类型相同,即使该类型未命名。但是,我在生产中发现了一些执行以下操作的代码:
function println (x) {
document.write(x + '<br\>');
}
class SettingsBase {
public static setting1: string;
public static setting2: string;
}
class SettingsUser {
private _settings: typeof SettingsBase;
constructor(settings: typeof SettingsBase) {
this._settings = settings;
}
public doStuff() {
println(this._settings["setting1"]);
}
}
class MySettings extends SettingsBase {
public static setting1 = "foo";
public static setting2 = "bar";
}
var baz = new SettingsUser(MySettings);
baz.doStuff();
Run Code Online (Sandbox Code Playgroud)
在 中SettingsUser
,构造函数接受一个类型为 的参数typeof SettingsBase
。“typeof”一个类是什么意思?我不认为这应该工作,我可能会重构它,但我想知道它首先是如何工作的。
typeof
类名之前的关键字将提取类构造函数的类型Foo
,而不仅仅是 type ,它表示一个实例。例如:
class Foo {}
var x: typeof Foo = Foo; // This is okay
var y: Foo = new Foo(); // Also okay
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
747 次 |
最近记录: |