Javascript 注释中带有和Immutable.js数据结构的JSDoc
我正在从函数返回Immutable.js数据结构 PHPStorm将自动附加以下内容Javascript 注释中带有和Immutable.js数据结构的JSDoc,javascript,jsdoc,immutable.js,Javascript,Jsdoc,Immutable.js,我正在从函数返回Immutable.js数据结构 PHPStorm将自动附加以下内容 @返回{*| List | List} Eslint正在给我警告类型为“T”的未解析变量。 在哪里可以找到Immutable.js注释的文档 我如何在@returns中描述将在Eslint中传递的列表的注释形状 /** * @param n * @returns {*|List<T>|List<any>} */ const getList = (n) => { let l
@返回{*| List | List}
Eslint正在给我警告类型为“T”的未解析变量。
在哪里可以找到Immutable.js注释的文档
我如何在@returns中描述将在Eslint中传递的列表的注释形状
/**
* @param n
* @returns {*|List<T>|List<any>}
*/
const getList = (n) => {
let list = Immutable.List()
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
list = list.push(Immutable.List.of(i, j))
}
}
return list
}
/**
*@param n
*@returns{*| List | List}
*/
常量getList=(n)=>{
let list=Immutable.list()
for(设i=0;i
虽然我不熟悉Immutable.js,但问题是T
是一个必须在文档中定义的模板。看,你的函数真正返回的是一个数字列表。因此,T
解析为List
,您的固定文档如下所示:
/**
* @param {Number} n
* @return {List<List<Number>>}
*/
此外,不仅时间,而且内存使用也在以二次方的方式增加。根据您使用它的方式,您可能希望将您的函数改为生成器函数,这将“神奇地”使它使用恒定的空间,即,无论n
有多大,您的函数都将继续使用相同的内存量。以下是您的函数转换为生成器函数:
/**
* @generator
* @param {Number} n
* @yields {List<Number>}
*/
function *getList(n) {
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
yield Immutable.List.of(i, j);
}
}
}
/**
* @generator
* @param {Number} n
* @yields {List<Number>}
*/
function *getList(n) {
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
yield Immutable.List.of(i, j);
}
}
}
for (const pair of getList(4)) {
console.info(`...and here comes another pair: [${pair}]`);
}