gpt4 book ai didi

javascript - 如何在 JSDoc 中指定类的类型(不是它的实例)

转载 作者:行者123 更新时间:2023-11-29 23:19:17 24 4
gpt4 key购买 nike

我有课:

class Model { 
static get schema() { } // static property 'schema'
}
class CustomModel_1 extends Model { }
. . .
class CustomModel_N extends Model { }

我想声明一个新函数,其参数指定了一种模型(不是这种类型的实例):

/**
* @param {Model} ModelType <== it is a wrong type because it is an instance of Model
*/
function doSomething(ModelType) {
const schema = ModelType.schema // <== WebStorm emphasizes 'schema'
}

如何在 JSDoc 中指定它?表达式 {Model} 无效,因为它指定了 Model 的实例。

最佳答案

你不妨试试这个:

/**
* @param {Model.constructor} ModelType
*/
function doSomething(ModelType) {
// ...
}

也就是说,您可以通过它的 constructor 属性引用对象(本质上是类)的构造函数,这是任何 JavaScript 对象的内置属性。

根据您的环境,您可能还想尝试以下操作:

/**
* @param {typeof Model} ModelType
*/

Closure Compiler 支持此类型表达式由 JSDoc 使用,尽管我个人没有使用它,因为我的部分工具链不支持这种特定语法。

另见 JSDoc Typeof Plugin ,这是最终在 VSCode 中为我工作的解决方案。

关于javascript - 如何在 JSDoc 中指定类的类型(不是它的实例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51361122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com