提问人:Usama Ahmed 提问时间:8/16/2023 更新时间:8/16/2023 访问量:37
TypeScript 类型检查不适用于使用声明文件的 JavaScript 函数
TypeScript Type Checking Not Working for JavaScript Functions Using Declaration Files
问:
我目前正在做一个混合了 JavaScript 和 TypeScript 文件的项目。我正在尝试通过使用声明文件将 TypeScript 的类型检查功能用于 JavaScript 函数,但我遇到了一个问题,即 TypeScript 似乎没有按预期强制执行类型检查。
下面是我项目的简化文件夹结构:
tscodes/
├── tsconfig.json
├── declaration_file_samples.ts // JavaScript entry point
├── traceFunction.js // JavaScript implementation file
└── declaration_file.d.ts // TypeScript declaration file
在 中,我声明了一个名为 :declaration_file.d.ts
trace
declare function trace(arg: string | number | boolean);
但是,当我在 JavaScript 文件中导入和使用该函数时,TypeScript 似乎没有强制执行类型检查。即使我从声明中删除了 or 等选项,我也不会收到任何类型错误。trace
declaration_file_samples.ts
string
number
以下是我declaration_file_samples.ts的内容:
const trace = require('./traceFunction');
// Using the trace function
trace("trace with string");
trace(true);
trace(1);
下面是文件(JavaScript 实现):traceFunction.js
function trace(arg) {
console.log(arg);
}
module.exports = trace;
我已确保路径和文件名正确无误。我的 TypeScript 配置 (tsconfig.json) 如下所示:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"allowJs": true,
"declaration": true,
"strict": true,
"esModuleInterop": true,
"outDir": "./dist",
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"noImplicitAny": true
}
}
我这样做,然后转到文件夹tsc
dist
node declaration_file_samples.ts
我想知道我是否遗漏了什么或误解了 TypeScript 类型检查如何与 JavaScript 函数和声明文件一起使用。任何见解或建议将不胜感激!
答: 暂无答案
评论
checkJs
选项添加到您的 .tsconfig.json