typeof
返回一个字符串。 Sequelize
的TypeScript类型的返回类型为typeof Model
。这是什么意思?我在文档中找不到解释。
谢谢。
答案 0 :(得分:1)
类名表示类的实例类型(即,该表达式的结果的类型,例如new Model()
)。
但是类本身也有一个类型。此类型包含构造函数签名以及该类的静态成员。要获得此类型,您需要使用typeof ClassName
。
返回typeof Model
的函数意味着它将返回一个从Model
派生的新类(不是类的实例)。
然后您可能要做的就是实例化该类:
let myModelClass = define(...);
let myModelInstance = new myModelClass()
注意:如果您需要这样定义的类的实例类型,则需要使用InstanceType<typeof myModelClass>
。这是因为只有类声明会添加具有相同名称的类型,而变量不会以任何方式定义这种类型。可能有助于为其定义类型别名,以使其以更预期的方式工作:
let myModel = define(...);
type myModel = InstanceType<typeof myModel>
let myModelInstance: myModel = new myModel()