TypeScript导入Node.js的fs包出现语法错误该如何解决
错误原因
- ES Module 导入语法中,
import * as后必须接合法的变量标识符,不可以是字符串字面量。你写的"fs"属于字符串,不符合语法要求,所以直接触发语法报错。
正确写法
你可以根据自己的使用场景选择任意一种导入方式:
- 导入整个fs模块的所有导出内容,绑定到
fs变量使用:
import * as fs from "fs"; // 后续使用示例 fs.readFileSync("./test.txt");
- 仅导入需要的特定API,适合有摇树优化需求的场景:
import { readFileSync, writeFileSync } from "fs"; // 后续使用示例 readFileSync("./test.txt");
- 如果你的TS配置中开启了
esModuleInterop: true(绝大多数脚手架创建的项目默认开启),也可以用默认导入写法:
import fs from "fs";
额外注意
如果导入后TS提示找不到fs模块的类型定义,执行以下命令安装Node.js核心模块的类型声明包即可:npm install @types/node -D
内容的提问来源于stack exchange,提问作者Joy Singh
相关产品推荐
相关产品推荐

