繁体   English   中英

Typescript在泛型类型声明中看不到导入的变量

[英]Typescript does not see imported variable in generic type declaration

我正在尝试为应用程序中的每个实体创建通用存储库

mongo-repository.ts

import { Document, Model, Types } from 'mongoose';

type MongooseModel<T> = Model<T & Document>;

export abstract class MongoRepository<T extends MongooseModel<T>> {
  protected constructor(
    protected readonly model: T,
  ) {}
}

user.repository.ts

import { User } from '../../../models/User';
import { MongoRepository } from '../../common/mongo/mongo-repository';

class Repository extends MongoRepository<User> {
  constructor() {
    super(User);
  }
}

export const UserRepository = new Repository();

实际结果:

src/modules/user/repository/user.repository.ts:4:42 - error TS2304: Cannot find name 'User'.

4 class Repository extends MongoRepository<User> {
                                           ~~~~

预期的结果:工作。

但是,我没有在super(User)得到此错误消息,而只是在通用声明中得到

固定,固定:

MongoRepository<T extends typeof Model>
class Repository extends MongoRepository<typeof User>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM