有没有办法强制执行未实例化类的类型



打字稿中有什么方法可以强制执行未实例化类的类型吗?

下面我想强制要求只有扩展Repository的类才能传递给 addRepository 方法,但我不想在传入时实例化该类(它的构造函数应该只由服务容器调用(。

有什么办法可以做到这一点吗?

import { Repository } from '../repositories/repository';
class Factory {
  addRepository(repositoryClass: Repository) /* <- seriously what can go here? */ { }
}
class UserRepository extends Repository {
}
let factory = new Factory();
factory.addRepository(UserRepository); // throws error
您可以使用

typeof运算符:

class Factory {
  addRepository(repositoryClass: typeof Repository) { }
}

相关内容

最新更新