Max Yankov
Max Yankov

Reputation: 13297

How can I use timers/promises from Node 16 in a Typescript project?

In Node 16 release, there's new timers/promises API that I want to use. I installed Node 16 with NVM and switched to it:

$ nvm use       
Found '/Users/golergka/Projects/my-project/.nvmrc' with version <16>
Now using node v16.0.0 (npm v7.10.0)

And even added engines to my package.json:

"engines": { "node": ">=16" }

I wasn't sure if I needed to install version 16 of @types/node, but I tried (without success):

npm install --save-dev @types/node@16
npm ERR! code ETARGET
npm ERR! notarget No matching version found for @types/node@16.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.

For now, I have ^14.14.41 installed.

And finally, I tried to import setTimeout in my Typescript file:

import { setTimeout } from 'timers/promises'

But got an error:

Cannot find module 'timers/promises' or its corresponding type declarations.

How can I fix this?

Upvotes: 6

Views: 11228

Answers (2)

TheMrZZ
TheMrZZ

Reputation: 308

It has been published 3 days ago, in @types/node. Just run npm install --save-dev @types/node@latest, or yarn add --dev @types/node@latest. The version is 0.

Upvotes: 3

Simone Romano
Simone Romano

Reputation: 11

Currently the node types are outdated, you can only turn off the error with ts ignore

Upvotes: 1

Related Questions