DEV Community

Discussion on: ES6 is the Node way to go

Collapse
 
w3nl profile image
Pieter Epeüs Wigboldus

Typescript or not, import the the way, it doesn't matter if you use typescript or not.
Typescript is a dialect for development, not for runtime.
I also don't build my node modules back to the old way, my modules on npm have just import/export without a build step.

Collapse
 
mrinasugosh profile image
Mrinalini Sugosh (Mrina)

@w3nl
Agreed import is the way to go TS/JS!

Out of curiousity, what are the steps you use to import/export without a build step? I have been reading a bit of the docs and found that the two ways. Certainly curious to know your approach :)

nodejs.org/docs/latest-v14.x/api/e...

Thread Thread
 
w3nl profile image
Pieter Epeüs Wigboldus

I use the type field in the package.json
Than you say that es modules is your default, and if you need common js, you have to change that file extension to cjs.
(e.g. if some old package need a config file in common js format)

The greatest benefit for me is debugging information, what is going on in the dependencies.
(Packages I made and use in my projects)

Collapse
 
mohdahmad1 profile image
Mohd Ahmad

but, typescript guarantees type safety and rich intellisense, if you dont like typescript check JSDoc. JSDoc provides typings using regular JS comments so, no need for build steps.

examples

/** @type {(string|Array.)} */
var foo;

/** @type {number} */
var bar = 1;

/**
 * Represents a book.
 * @constructor
 * @param {string} title - The title of the book.
 * @param {string} author - The author of the book.
 */
function Book(title, author) {
   // your code
}
Enter fullscreen mode Exit fullscreen mode

it enhances intellisense of your code editor.
Visit for more Info

Thread Thread
 
w3nl profile image
Pieter Epeüs Wigboldus

JSDoc is indeed very useful for development, it's a standard for me to use it, but it's also not for runtime checking.

I made e.g. npmjs.com/package/@hckrnews/objects for type checking, but there are more packages to guarantee if the data is valid.
Typescript has some nice features, but for me there are also reasons I don't use it for node.js, and I found ways to write clean code that also guarantee that the data is valid.

Clean readable code, strict linting and good tests are very important for me.
For some it can be with typescript, but typescript don't guarantee that your code is good.
Use it if you like it, but it's not the holy grail for good code.