遵循FullStackOpen教程配置后运行Typescript文件报错如何解决
问题原因与解决方案
错误根源
你的报错完全和Windows 10系统无关,核心原因是项目缺少TypeScript的配置文件tsconfig.json,ts-node运行时采用了默认的严格校验规则,触发了两类编译错误:
- 三个TS7006错误:默认开启的
noImplicitAny规则不允许参数隐式为any类型,你定义的multiplicator函数三个参数都未标注类型,因此触发校验失败。 - TS2584错误:默认编译配置未包含全局API的类型声明,因此无法识别
console对象。
解决步骤
第一步:生成tsconfig配置文件
在项目根目录执行命令生成默认配置文件:npx tsc --init
第二步:选择对应修复方案
方案1:降低校验严格度,快速跑通课程示例
打开生成的tsconfig.json,修改以下配置项即可:
{ "compilerOptions": { "target": "ES2020", "lib": ["ESNext", "DOM"], "noImplicitAny": false, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true } }
修改后直接执行原命令npm run ts-node -- multiplier.ts即可正常运行。
方案2:遵循TypeScript规范修改代码(推荐学习阶段使用)
不需要修改noImplicitAny配置,先安装Node.js全局API的类型声明包:npm install --save-dev @types/node
再修改multiplier.ts代码,给所有参数添加类型标注:
const multiplicator = (a: number, b: number, printText: string) => { console.log(printText, a * b); }; multiplicator(2, 4, "Multiplied numbers 2 and 4, the result is:");
修改后执行运行命令即可正常输出结果。
内容的提问来源于stack exchange,提问作者Notorious776
相关产品推荐
相关产品推荐

