Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Officia type definitions for 5.x? #1554

Open
justinfagnani opened this issue Dec 20, 2023 · 10 comments
Open

Officia type definitions for 5.x? #1554

justinfagnani opened this issue Dec 20, 2023 · 10 comments

Comments

@justinfagnani
Copy link

I notice that there are no type definitions for the 5.x branch, here or in Definitely Typed. Is there a chance of getting official types with the 5.x releases?

@keithamus
Copy link
Member

PRs welcome for adding official types.

@43081j
Copy link
Contributor

43081j commented Dec 21, 2023

we could generate types via --declarationOnly in tsc if we correct all the jsdoc, but its a chunky job

so maybe for now we just store hand written types alongside the sources? i can probably have a stab at it at some point

@justinfagnani
Copy link
Author

I'm hesitant to ask, but... it's there any appetite for a contribution of a port of the source to TypeScript syntax?

@43081j
Copy link
Contributor

43081j commented Dec 21, 2023

Tbh I would rather do that than work around it producing types from the js

If everyone's up for that I can probably sort it out

@justinfagnani
Copy link
Author

I could contribute too, though you might be faster.

I wonder if given the existing npm scripts, if Wireit would be a good addition to make sure everything's built before other scripts that need that.

@koddsson
Copy link
Member

Started a draft PR here. I'll be slogging through the types and trying to get them all done before the new year but who knows how long it will take :D

#1557

Feel free to help out by making PRs against this one.

@freshp86
Copy link

freshp86 commented Jun 25, 2024

Any updates here? The lack of TS definitions for v5 makes it harder to adopt this version in TS codebases.

FWIW, the following patch seems to do the minimum work needed to import assert and expect from a TS file.

-declare const chai: Chai.ChaiStatic;
-
-declare module "chai" {
-    export = chai;
-}
+export const assert: Chai.AssertStatic;
+export const expect: Chai.ExpectStatic;

@43081j
Copy link
Contributor

43081j commented Jun 26, 2024

i have a branch where i was working on converting the codebase to typescript overall, but i think @koddsson, @keithamus and i should really catch up on this

we need to decide if to provide a fixed set of types as step 1, then move to typescript. or just go all in and move to typescript

@freshp86
Copy link

freshp86 commented Jun 28, 2024

we need to decide if to provide a fixed set of types as step 1, then move to typescript

This seems like the best option to me.

... or just go all in and move to typescript

Blocking v5 TS definitions on the whole project moving to TS seems a bit unnecessary. As shown above manually crafting a d.ts file to properly reflect the newly exposed ES modules seems much easier (perhaps even trivial?) than migrating the whole project to TS and then relying on automatic .d.ts generation.

@43081j
Copy link
Contributor

43081j commented Jun 28, 2024

i think you're right

i have a bunch of travel in the coming weeks but ill try find time to at least sort out a types-only branch (before moving to typescript as a whole)

contributions welcome too of course, but im thinking we may as well roughly copy whats in my ts branch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants