Last updated: Feb 27, 2024
Reading time·2 min
To import and use the fs
module in TypeScript, make sure to install the type
definitions for node
by running npm i -D @types/node
and import fs
with
the following line import * as fs from 'fs'
.
node
by opening your terminal in your project's root directory and running the following command.npm install -D @types/node yarn add -D @types/node
This will add the typings for Node as a development dependency in your project.
The node typings include the type definitions for the built-in fs
module.
Here is an example of how to import and use fs
.
I'll post a code snippet that uses the module synchronously and the next code snippet will use the async version of the same methods.
// ✅ using the fs module synchronously import * as fs from 'fs'; import * as path from 'path'; function readFile() { const dirContents = fs.readdirSync(__dirname); console.log(dirContents); const fileContents = fs.readFileSync( path.join(__dirname, 'another-file.ts'), { encoding: 'utf-8', }, ); console.log(fileContents); } readFile();
We imported the fs
and path
built-in modules and used the
readdirSync and
readFileSync
methods.
The readdirSync
method reads the contents of a directory and readFileSync
-
the contents of a specific file.
another-file.ts
located in the same directory where your fs-related code is.Here is the output after running the code from the snippet.
Now let's look at how you would use the promises version of the fs
module.
fs
module asynchronously in TypeScriptHere is a code snippet that uses the async (promises) version of the same methods.
// ✅ using the async module asynchronously import { promises as fsPromises } from 'fs'; import * as path from 'path'; async function readFile() { try { // ✅ Read contents of directory const dirContents = await fsPromises.readdir(__dirname); console.log(dirContents); // ✅ Read contents of `another-file.ts` in the same directory const fileContents = await fsPromises.readFile( path.join(__dirname, './another-file.ts'), { encoding: 'utf-8' }, ); console.log(fileContents); } catch (err) { console.log('error is: ', err); } } readFile();
Notice that the import statement is different, now we are importing promises
from fs
.
We used the fsPromises.readdir method to read the contents of the directory and the fsPromises.readFile method to read the contents of a file.
The example assumes that you have a file named another-file.ts
that is located
in the same directory.
If you need to read more about a specific method the fs
module implements and
how to use it, check out the
Node.js docs for fs.
If you get the error Cannot find module 'fs' Error in TypeScript, click on the link and follow the instructions.