我有一个接受一个字符串参数的函数。此参数只能具有几个定义的可能值之一。记录相同内容的最佳方法是什么?应该将shapeType定义为enum还是TypeDef或其他?
Shape.prototype.create = function (shapeType) {
// shapeType can be "rect", "circle" or "ellipse"...
this.type = shapeType;
};
Shape.prototype.getType = function (shapeType) {
// shapeType can be "rect", "circle" or "ellipse"...
return this.type;
};
问题的第二部分是在将
shapeType
定义为您建议的文件中,shapeType
的可能值未知。有几个开发人员提供的多个文件可能会增加shapeType
的可能值。PS:我正在使用
jsdoc3
最佳答案
如何声明一个虚拟枚举:
/**
* Enum string values.
* @enum {string}
*/
Enumeration = {
ONE: "The number one",
TWO: "A second number"
};
/**
* Sample.
* @param {Enumeration} a one of the enumeration values.
*/
Bar.prototype.sample = function(a) {};
b = new Bar();
bar.sample(Enumeration.ONE)
但是,您至少需要为此向JSDOC声明枚举。但是代码很干净,您可以在WebStorm中自动完成。
多文件问题虽然不能用这种方法解决。