是否可以让 TypeScript 编译器检查 JavaScript 文件foo.js与其自己的声明文件是否一致foo.d.ts?
我们有一段 JavaScript 代码,出于各种原因,我们希望将其保留在 JavaScript 中。不过,如果可能的话,我们希望使用 TypeScript 来实现两个目标:1) 确认我们自己的 JavaScript 代码是类型安全的,以及 2) 向有兴趣使用 TypeScript 的客户提供声明。
对于给定的 JavaScript 文件foo.js,我们可以创建相应的文件foo.d.ts来满足目标 #2(支持 TypeScript 客户)。但据我们所知, 的存在foo.d.ts不会导致对 的任何检查foo.js。也就是说,声明文件只对 的外部使用者感兴趣foo.js,编译器不会验证 JavaScript 代码是否与其自己的 .d.ts 声明一致。
我们已经尝试在 中使用 jsDoc 类型注释foo.js,并且 TypeScript 编译器确实验证了该文件中的代码与那些声明的类型一致。这似乎满足目标#1(检查我们自己的代码)。
然而,jsDoc 注释并不像 .d.ts 声明文件中可能的完整 TypeScript 语法那么强大(例如,jsDoc 对泛型的支持是基本的),这限制了我们可以使用它们的地方。此外,TypeScript 编译器似乎没有提供任何验证以确保 jsDoc 注释与 .d.ts 声明一致。我们冒着这两种类型信息来源不一致的风险。
我们正在寻找有关在这样的 JavaScript 项目的上下文中利用 TypeScript 类型检查的最佳方法的指南。
是否可以让 TypeScript 编译器检查 JavaScript 文件 foo.js 与其自己的声明文件 foo.d.ts 一致
并不真地。文件几乎没有提供有关支持和不支持的具体.js内容的上下文。如果可能的话,我们就不需要 TypeScript。