removeTypeComments(cacheKey, sourceCode) {
    let cacheItem = this.lintCache[cacheKey];
    if (!cacheItem || cacheItem.original !== sourceCode) {
      const ast = parse(sourceCode, {
        comment: true,
        ecmaVersion: 'latest',
        sourceType: 'module',
      });
      let cleanedSource = '';
      let start = 0;
      for (let i = 0, ii = ast.comments.length; i < ii; ++i) {
        const comment = ast.comments[i];
        if (!comment.value.startsWith('* @type ')) {
          continue;
        }
        cleanedSource += sourceCode.slice(start, comment.start);
        start = comment.end;
      }
      cleanedSource += sourceCode.slice(start);
      cleanedSource = this.linter.verifyAndFix(
        cleanedSource,
        flatConfig,
      ).output;
      cacheItem = {original: sourceCode, cleaned: cleanedSource};
      this.lintCache[cacheKey] = cacheItem;
    }
    return cacheItem.cleaned;
  }
Remove `/** @type {...} *` comments
@param {string} cacheKey Cache key
@param {string} sourceCode Source code
@return {string} Cleaned up source code