#12 TypeScriptで学ぶファイル読み書きの基本
TypeScriptのファイル操作は、土台となるNode.jsの機能をそのまま利用しつつ、型を意識して書くのが特徴です。この記事では、TypeScriptにおけるファイル操作の基本と、型による安全性を解説します。
Node.jsのfsモジュールを使う
import * as fs from 'fs';
const content: string = fs.readFileSync('data.txt', 'utf-8');
console.log(content);
JavaScriptと同じfsモジュールを使いますが、戻り値の型を明示することで、読み込んだ内容が文字列であることをコード上ではっきりさせられます。
ファイルに書き込む
fs.writeFileSync('data.txt', 'こんにちは');
非同期の書き方
大きなファイルを扱う場合や、Webサーバーの中で使う場合は、非同期(Promiseベース)の書き方が推奨されます。
import * as fs from 'fs/promises';
async function readData(): Promise<string> {
return await fs.readFile('data.txt', 'utf-8');
}
Promise<string>という戻り値の型を見るだけで、「非同期処理の末に文字列が得られる関数」だと一目で分かります。
型のおかげで得られる安全性
fsモジュールの多くの機能には、あらかじめ型定義が用意されています。そのため、間違った種類の引数を渡そうとすると、実行前にTypeScriptがエラーとして教えてくれます。
fs.writeFileSync('data.txt', 12345); // コンパイルエラー(文字列やBufferが必要)
TypeScriptならではの注意点
ファイル操作はブラウザ環境では扱えないため、TypeScriptで書く場合も、これがNode.js向けのコードであることを前提にしています。ブラウザ向けのTypeScriptプロジェクトでは、このfsモジュールは使えない点に注意しましょう。また、tsconfig.jsonの設定で@types/nodeという型定義パッケージが読み込まれていないと、fsモジュール自体の型情報が認識されずエラーになることがあるため、Node.js向けのプロジェクトでは忘れずにインストールしておきましょう。
まとめ
TypeScriptのファイル操作はNode.jsのfsモジュールが基本です。同期・非同期を使い分け、型のおかげで引数のミスに早く気づけるという利点も活かしましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
TypeScriptをもっと学びたい方には「プロを目指す人のためのTypeScript入門」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿