typescript icon indicating copy to clipboard operation
typescript copied to clipboard

Docs: Add best practices for modules to support Typescript

Open NickBolles opened this issue 6 years ago • 3 comments

Is your feature request related to a problem? Please describe. I'm always frustrated when... a module doesn't have clear typescript instructions and/or doesn't have typings

Describe the solution you'd like A guide to module authors on the best way to implement typings into a module.

Describe alternatives you've considered Dealing with it and figuring it out myself for each package.

Additional context I'm currently trying to add types to the auth-module, pull request

I'm basing this PR off of the axios-module, but it would be nice if we had a bit more of a step by step process for module authors to take.

  • It would be nice to link to a typescript specific guide from here (or maybe just include it on that page too) - https://nuxtjs.org/guide/modules

  • Steps would look something like

  1. Add a types/index.d.ts file
  2. Create your types (cover a few scenarios - component options, component instance etc. Some of which are already covered)
  3. Add "types": "types/index.d.ts", to your package.json
  4. Add the types directory to your NPM file, this varies, but something like
  "files": [
    "lib",
    "types"
  ],
  1. Include an example! - create an example boilerplate for module authors to copy and paste ...anything else?

NickBolles avatar Nov 20 '19 17:11 NickBolles

@NickBolles For now there's already https://typescript.nuxtjs.org/cookbook/modules.html

@nuxt/typescript-build is itself a Nuxt module and is written in TypeScript while exporting the Options interface : https://github.com/nuxt/typescript/blob/master/packages/typescript-build/src/index.ts

About the steps, IMO an intermediate TypeScript developer already knows how to provide types for a package. Still a module author documentation is relevant.

kevinmarrec avatar Nov 22 '19 14:11 kevinmarrec

@kevinmarrec that cookbook link is for a Typescript - runtime module. What I'm suggesting is for modules such as auth-module, which is written in javascript. Often the authors of these modules don't want to or aren't used to typescript types.

Probably not a big use case. but 🤷‍♂

NickBolles avatar Nov 23 '19 19:11 NickBolles

Will add a documentation for modules authors.

kevinmarrec avatar Dec 08 '19 13:12 kevinmarrec