javascript 使用checkJs时未检测到TypeScript .d.ts声明

wydwbb8l  于 2023-01-11  发布在  Java
关注(0)|答案(1)|浏览(126)

bounty将在5天后过期。回答此问题可获得+150声望奖励。jujule希望引起更多人对此问题的关注:我想知道如何从一个. d.ts文件输入JS函数,而不涉及JS本身

我想将类型定义添加到现有JavaScript代码库中
我尝试在index.d.ts中定义一个函数:

declare function func(): () => 42;

index.js中:

// NOT type-checked
const func = () => {};

jsconfig.json

{
  "compilerOptions": {
    "module": "ES6",
    "noEmit": true,
    "checkJs": true,
    "allowJs": true,
    "strict": true
  },
  "exclude": ["node_modules"]
}

虽然正确检查了与.d.ts相关的导入和显式JSDoc注解的类型,但.d.ts文件中声明的func类型看起来未被检测到

不确定是否是故意行为、错误或配置错误
GitHub上提供了完整的再现

xe55xuns

xe55xuns1#

您需要显式指定类型,如下所示:

// index.d.ts
declare namespace MyNamespace {
  type MyFunc = () => 42;
}
/** @type {MyNamespace.MyFunc} */
const func = () => 42;
// const func = () => {}; // this will now yield an error

相关问题