已安装@types/dom-mediacapture-record仍找不到MediaRecorder怎么解决
问题排查步骤
- 确认依赖安装正确
执行以下命令重新安装类型包到开发依赖:npm install -D @types/dom-mediacapture-record
如果使用pnpm/yarn,替换为对应包管理器的安装命令即可。 - 修复代码语法与API调用问题
你当前的代码存在回调函数未闭合的语法错误,且使用了已废弃的navigator.getUserMediaAPI,建议替换为现代化的Promise版本调用:
const recordAudio = () => { navigator.mediaDevices.getUserMedia({ audio: true }) .then(stream => { const mediaRecorder = new MediaRecorder(stream); // 后续录制业务逻辑 }) .catch(err => { console.error('音频权限获取失败:', err); }); };
- 校验tsconfig.json配置
确认compilerOptions字段下的lib数组包含DOM,types数组包含已安装的类型包:
{ "compilerOptions": { "lib": ["ESNext", "DOM", "DOM.Iterable"], "types": ["@types/dom-mediacapture-record", "react", "node"] } }
- 重载TypeScript语言服务
在VS Code等IDE中按下快捷键Ctrl+Shift+P,执行TypeScript: Restart TS Server,让TS重新加载所有类型定义。 - 兜底全局类型声明
如果上述操作后仍报错,在项目根目录新建global.d.ts文件,加入以下全局声明:
declare var MediaRecorder: typeof import('@types/dom-mediacapture-record').MediaRecorder;
内容的提问来源于stack exchange,提问作者Akash
相关产品推荐
相关产品推荐

