Typescript 基于类泛型类型的可选类构造函数属性

Typescript 基于类泛型类型的可选类构造函数属性,typescript,Typescript,我有一个使用泛型的基类。该类如下所示 class Base<T extends Record<keyof T, unknown> | undefined = undefined> { constructor(a: number, b: () => T) { } } 你看过typescript部分类型了吗 有了它,您可以定义一个构造函数,在其中您可以在需要时插入所需内容。在构造函数方法中处理细节 我甚至不想假装我遵循您对Base T的类型定义。但

我有一个使用泛型的基类。该类如下所示

class Base<T extends Record<keyof T, unknown> | undefined = undefined> {

  constructor(a: number, b: () => T) {
    
  }
}

你看过typescript部分类型了吗

有了它,您可以定义一个构造函数,在其中您可以在需要时插入所需内容。在构造函数方法中处理细节

我甚至不想假装我遵循您对Base T的类型定义。但是,如果您想创建对象而不只是一些参数,那么Partial是一个不错的选择

class Base<T> {

  constructor(init?: Partial<Base<T>) {
    
  }

  prop1 : string;
  prop2 : string;
}

// You'd use it like this, note that only one property is being set.

var thing = new Base<T>({ prop1: "stuff" });
类基{

构造函数(init?:部分
构造函数(a:数字,b?:T){
?@zerkms我只希望它在T未定义时是可选的。在这种情况下,泛型的意义是什么?T未定义?这没有多大意义sense@DanielA.White oh
T
用作成员变量,并由类中的其他成员函数返回。我的示例没有显示这一点,但使用m是没有意义的ember变量总是
未定义的
。您的抽象有些可疑
class Base<T> {

  constructor(init?: Partial<Base<T>) {
    
  }

  prop1 : string;
  prop2 : string;
}

// You'd use it like this, note that only one property is being set.

var thing = new Base<T>({ prop1: "stuff" });