Typescript 如何在构造类之前定义可用于类的属性(例如,对于工厂方法)?

Typescript 如何在构造类之前定义可用于类的属性(例如,对于工厂方法)?,typescript,class,Typescript,Class,示例代码: class User { name: String; constructor(name: String) { this.name = name; } } User.get = (name):User => { return new User(name); } // Should return User bob var user = User.get("bob") // Should also return User bob va

示例代码:

class User {
  name: String;
  constructor(name: String) {
    this.name = name;
  }
}

User.get = (name):User => {
  return new User(name);
}
// Should return User bob
var user = User.get("bob")

// Should also return User bob
var user = new User("bob")
Property 'get' does not exist on type 'typeof User'.ts(2339)
使用:

class User {
  name: String;
  constructor(name: String) {
    this.name = name;
  }
}

User.get = (name):User => {
  return new User(name);
}
// Should return User bob
var user = User.get("bob")

// Should also return User bob
var user = new User("bob")
Property 'get' does not exist on type 'typeof User'.ts(2339)
错误:

class User {
  name: String;
  constructor(name: String) {
    this.name = name;
  }
}

User.get = (name):User => {
  return new User(name);
}
// Should return User bob
var user = User.get("bob")

// Should also return User bob
var user = new User("bob")
Property 'get' does not exist on type 'typeof User'.ts(2339)
我想知道如何定义此属性,以避免出现此错误。另外,是的,我知道我可以在类用户内部定义get函数,但是出于其他原因,我希望能够在类本身上调用get函数。

get
(或者可能
创建
)声明为
用户的静态函数:

class User {

  static get(name: string): User {
    return new User(name);
  }

  name: string;

  constructor(name: string) {
    this.name = name;
  }
}
现在,
constuser=user.get(“bob”)应该可以工作。我希望这很适合你问题的最后一段