如何为 TypeScript 泛型编写 JSDocs?

问题描述 投票:0回答:0

我正在尝试 JSDocs

isEqual(object1: T, object2: T)
但我收到警告:类型“T”未定义.eslintjsdoc/no-undefined-types。

如何修复这里的 eslint 警告?

/**
 * isEqual - Check if two objects are equal
 * @param {T} object1 - Object 1
 * @param {T} object2 - Object 2
 * @returns {boolean} - True if objects are equal
 */
export function isEqual<T>(object1: T, object2: T): boolean {
  if (!isObject(object1) || !isObject(object2)) {
    return object1 === object2;
  }
  const keys1 = Object.keys(object1) as Array<keyof typeof object1>;
  const keys2 = Object.keys(object2) as Array<keyof typeof object2>;

  if (keys1.length !== keys2.length) {
    return false;
  }
  for (const key of keys1) {
    const val1 = object1[key];
    const val2 = object2[key];

    const areObjects = isObject(val1) && isObject(val2);
    if ((areObjects && !isEqual(val1, val2)) || (!areObjects && val1 !== val2)) {
      return false;
    }
  }

  return true;
}
/**
 * isObject - Check if value is an object
 * @param {unknown} value - Value to check
 * @returns {boolean} - True if value is an object
 */
function isObject(value: unknown): value is Record<string, unknown> {
  return typeof value === 'object' && value !== null;
}

javascript typescript jsdoc
© www.soinside.com 2019 - 2024. All rights reserved.