是否可以在构造函数调用中使用泛型而不使用诸如此类的参数中的类型,或者还有另一种方式可以做到这一点?

type PersonProps = {
  name: string,
}

class Model<P> {
  label: string;

  constructor(label: string) {
    this.label = label;
  }

  create(props: P): Promise<any> { ... }
}

const Person = new Model<PersonProps>('Person');


编辑:

我在Visual Studio Code中收到以下流程错误,根本没有自动完成结果:

test.js:11
11: const Person = new Model<PersonProps>('Person');
                    ^^^^^^^^^^^^^^^^^^^^^ boolean. This type cannot be compared to
11: const Person = new Model<PersonProps>('Person');
                                          ^^^^^^^^ string

test.js:11
11: const Person = new Model<PersonProps>('Person');
                              ^^^^^^^^^^^ PersonProps. type referenced from value position
  5: type PersonProps = {
          ^^^^^^^^^^^ type PersonProps

最佳答案

您不需要(实际上也不能)在此处指定type参数:

const Person = new Model('Person');


如果要使用类型参数为Person变量指定完整类型,可以添加类型注释:

const Person: Model<PersonProps> = new Model('Person');


您看到的错误是由于<>字符在该上下文中解析为“小于”和“大于”而造成的。

10-07 14:10