Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

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?

like image 444
Max Yankov Avatar asked Apr 20 '21 23:04

Max Yankov


2 Answers

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.

like image 57
TheMrZZ Avatar answered Oct 06 '22 00:10

TheMrZZ


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

like image 40
Simone Romano Avatar answered Oct 06 '22 01:10

Simone Romano