Wil*_*sem 4 javascript reflection annotate
是否可以像使用C# 中的属性那样注释 JavaScript 函数参数?
示例(C#):
public void DoSomething([RequiredAction(Action="some_action")] Client client) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
目的是 - 给定一个函数 - 使用反射来检查例如参数的“类型”并在调用它之前执行必要的转换。JavaScript确实是动态类型的,但例如可以使用注释来定义实例的“类型”,特定函数期望(例如,param应该是整数或数组)。
编辑:类型方面只是注释的一种可能用途。例如,还可以指定必须首先在该属性或方面(例如数组的最大允许长度)上运行特定函数。
人们当然可以使用这个答案并通过使用特定的参数前缀来注释参数。例如,匈牙利表示法在哪里sParam识别参数应该是一个字符串。但这并不是很方便,也不是那么可扩展,因为它需要指定名称。有没有更通用的方法来实现这一目标?
我喜欢使用JSDOC,这些不在运行时检查,但可以在某些编辑器(例如komodo edit)和独立应用程序(我认为Google 闭包编译器是其中之一)中检查。一个例子。
/**
* @namespace {Object} myObject
*/
var myObject = {};
/**
* This returns true if the operand inputArg is a String.
* @memberof myObject
* @name something
* @function
* @param {*} inputArg
* @returns {boolean}
*/
myObject.something = function (inputArg) {
return type inputArg === 'string';
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11371 次 |
| 最近记录: |