尝试使用 `npm i --save-dev @types/xxx` (如果存在),或者添加一个包含 `declare module 'xxx';` 的新声明(.d.ts)文件?

作者站长头像
站长
· 阅读数 4

自己开发的lib库,rollup打包时也生成了.d.ts代码

interface BearType {
    id: number;
    createAt: string;
}
declare class Bear {
    list: BearType[];
    constructor();
    save: () => void;
    add: (p: BearType) => void;
    getOneById: (queueId: number) => BearType | undefined;
    delete: (id: number) => void;
}

export { Bear, BearType };

使用的时候

import { Bear, BearType } from "xxx";

但是依然提示

无法找到模块“xxx”的声明文件。“/xxx.cjs.js”隐式拥有 "any" 类型。
  尝试使用 `npm i --save-dev @types/xx` (如果存在),或者添加一个包含 `declare module 'xxx';` 的新声明(.d.ts)文件

这个要怎么解决?手动加一个

declare module 'xxx'

有没有自动生成的?还是我自动生成的.d.ts有问题,因为里面只是把我定义的类型声明了出来,并没有这个库xxx的声明。

回复
1个回答
avatar
test
2024-07-08
  1. 你生成的index.d.ts跟 index.js 是在同一个目录中?
  2. 上传npm时,是否有把 .d.ts 也一并上传上去?

在 node_modules 中打开你下载下来的包, .d.ts 是否也存在?

answer image

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容