【发布时间】:2018-02-01 20:31:50
【问题描述】:
我想创建一个接口,它定义了一组键值对,其中值限制为 typeof classWhichExtendsSpecificSuperClass。
比如这个界面:
interface MyInterface {
key: typeof SuperClass
}
还有这个基类:
class BaseClass extends SuperClass {...}
以这种方式应用:
function myFunction(arg: MyInterface) {...};
myFunction({
key: BaseClass
});
上面的代码会告诉我 typeof BaseClass 不能分配给 typeof SuperClass。
现在我知道我正在做的事情是不正确的,但还有其他可能吗?我想确保“key”的唯一允许值是扩展 SuperClass 的 typeof 类?
如果我在处理函数,我可以使用泛型,但据我所知,没有办法在对象属性上表达泛型。
任何帮助都会很棒!
【问题讨论】:
-
不确定是什么问题,下面的代码对我有用 class SuperClass { nr: number; } interface MyInterface { key: typeof SuperClass } class BaseClass 扩展 SuperClass { s: string; } function myFunction(arg: MyInterface) { var c = new arg.key(); } myFunction({ key: BaseClass });
-
您使用的是什么版本的打字稿?我进行了此编译并退出了该项目,现在它似乎有问题。
-
我使用的是 2.4.2
标签: typescript inheritance interface typeof