cypress-io / eslint-plugin-cypress

An ESLint plugin for projects that use Cypress
MIT License
706 stars 89 forks source link

Export Typescript types declaration #232

Open Kapcash opened 1 month ago

Kapcash commented 1 month ago

This plugin, when imported from a .ts file, throws types error because it doesn't declare any types.

I think it would be a good enhancement to declare at single a single types.d.ts in the package to export types, without converting the whole source code to Typescript. This way, Typescript users can seamlessly import the package without having to declare themselves the types :)

You can even export declaration types from .js files! https://www.typescriptlang.org/docs/handbook/declaration-files/dts-from-js.html

Kapcash commented 1 month ago

Here is my own, primitive, declaration file for this package:

packages.d.ts
declare module 'eslint-plugin-cypress/flat' {
  import type { ESLint } from 'eslint';
  const plugin: ESLint.Plugin;

  export default plugin;
};
MikeMcC399 commented 6 days ago

@Kapcash

Thank you for raising this issue!

According to the ESLint v9 documentation TypeScript Configuration Files

This feature is currently experimental and may change in future versions.

Please check the above documentation link and see if it is helpful for you.