有没有办法让javascript函数知道某个参数是某个类型的?
能够做这样的事情将是完美的:
function myFunction(Date myDate, String myString)
{
//do stuff
}
谢谢!
更新:由于答案是响亮的“否”,如果我希望myDate
被视为日期(为了在其上调用日期函数),我必须将其转换为函数中的日期,或者将其设置为date类型的新变量?
发布于 2011-12-07 06:16:27
不,JavaScript不是一种静态类型的语言。有时,您可能需要手动检查函数体中的参数类型。
发布于 2011-12-07 06:22:14
不是javascript本身,而是Google Closure Compiler的高级模式,你可以这样做:
/**
* @param {Date} myDate The date
* @param {string} myString The string
*/
function myFunction(myDate, myString)
{
//do stuff
}
请参阅http://code.google.com/closure/compiler/docs/js-for-compiler.html
发布于 2015-07-15 10:53:56
虽然您不能将有关类型的语言告知JavaScript,但您可以将它们告知您的集成开发环境,因此您可以获得更有用的自动完成。
这里有两种方法:
@param
directive:/** *@参数{日期} myDate -日期*@参数{字符串} myString -字符串*/函数myFunction(myDate,myString) { // ... }
您还可以对define custom types使用JSDoc,并在@param
指令中指定它们,但请注意,JSDoc不会执行任何类型检查;它只是一个文档工具。若要检查JSDoc中定义的类型,请查看TypeScript,它可以通过在
/* comment */
这是一种相当广泛的技术,例如使用by ReactJS。传递给第三方库的回调参数非常方便。
TypeScript
对于实际的类型检查,最接近的解决方案是使用TypeScript,它是JavaScript的(mostly)超集。这是TypeScript in 5 minutes。
https://stackoverflow.com/questions/8407622
复制相似问题