【发布时间】:2017-04-15 13:34:11
【问题描述】:
我看到了一些例子,让我觉得它可能会起作用,但我无法让以下内容起作用。在下文中,C 泛型代表一个类类型,I 泛型代表一个接口类型。但是,return new SomeClass()抱怨:Type SomeClass is not assignable to type I。
class SomeFactory implements ISomeFactory {
createSomeModule<C, I>(clas?: C, options?: IFactoryOptions): I {
switch (typeof (clas)) {
case 'SomeClass':
return new SomeClass();
...
}
}
}
这应该像我想的那样工作吗?我错过了什么吗?或者这只是不支持。我正在使用 Typescript 2.10 版运行 VS Code。
【问题讨论】:
-
typeof将始终返回'object'。 -
switch 语句与
typeof配合得很好。问题在于将new SomeClass()转换为通用接口I。 -
您可以使用以下命令禁用类型检查:
return new SomeClass() as any; -
好的,谢谢。我决定删除通用的
I,并明确地声明可能的接口类型。
标签: typescript typescript-generics