Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在函数的@param和@returns中使用相同的泛型类型_Javascript_Generics_Jsdoc - Fatal编程技术网

Javascript 在函数的@param和@returns中使用相同的泛型类型

Javascript 在函数的@param和@returns中使用相同的泛型类型,javascript,generics,jsdoc,Javascript,Generics,Jsdoc,如何使用JSDoc comment注释接受和返回相同类型对象的函数?如下所示: /** * Does some work and returns same type * @param {T extends Object} src Source object * @returns {T} object of the **same** type */ function chainFoo(src) { // do some work return Object.assing({}, src

如何使用JSDoc comment注释接受和返回相同类型对象的函数?如下所示:

/** 
* Does some work and returns same type
* @param {T extends Object} src Source object 
* @returns {T} object of the **same** type
*/
function chainFoo(src) {
  // do some work
  return Object.assing({}, src); // just as example    
}

有可能吗?

解决方案是指定

看起来是这样的:

/** 
* Does some work and returns same type
* @template T
* @param {T} src Source object 
* @returns {T} object of the **same** type
*/
function chainFoo(src) {
  // do some work
 return Object.assing({}, src); // just as example    
}

解决办法是指定

看起来是这样的:

/** 
* Does some work and returns same type
* @template T
* @param {T} src Source object 
* @returns {T} object of the **same** type
*/
function chainFoo(src) {
  // do some work
 return Object.assing({}, src); // just as example    
}

您只需在JSDoc的两个部分中使用相同的类型,这并没有错。您不需要{t extends Object}位,只要t就足够了。它不是具体类型,而是泛型。考虑使用:const Obj1= CHANFOO {CouSuth:1 }。应为类型编号。但是对于const arrangeAdate=chainFoo{sheSaid:'Maybe'}。她说它应该是string的。如果只是一个泛型对象,比如我会个性化地使用对象,那么通过chainFoo函数的对象会丢失它关于类型的元信息。是的,但是你的参数src仍然是一个对象,函数返回一个对象,其内容可以是动态的,因此在JSDoc中没有意义。您可以使用对象符号您可以在JSDoc的两个部分中使用相同的类型,这没有什么错。您不需要{t extends Object}位,只要t就足够了。它不是具体类型,而是泛型。考虑使用:const Obj1= CHANFOO {CouSuth:1 }。应为类型编号。但是对于const arrangeAdate=chainFoo{sheSaid:'Maybe'}。她说它应该是string的。如果只是一个泛型对象,比如我会个性化地使用对象,那么通过chainFoo函数的对象会丢失它关于类型的元信息。是的,但是你的参数src仍然是一个对象,函数返回一个对象,其内容可以是动态的,因此在JSDoc中没有意义。您可以使用对象表示法