我试图在TypeScript中创建一个工厂,该工厂将接口用作通用类型,检查所请求的通用类型并返回具体的实现。这是为了让我能够根据用户的特定需求在运行时动态创建所需的服务。
我尝试使用instanceof比较两者,但是出现以下错误:
“'T'仅指类型,但在此处被用作值。”
这是我到目前为止尝试过的:
public GetService<T>(): T {
if (T instanceof ICompanyService) {
return new <T>CompanyService();
}
}
,呼叫者会像这样:
var companyService =_serviceFactory.GetService<ICompanyService>();