Next.js+TypeScript导入JavaScript脚本报错,求解决方案
解决Next.js TypeScript项目导入JavaScript脚本的类型报错问题
可以通过修改JS脚本或添加配套类型文件解决当前的类型报错问题,具体方案如下:
给JS脚本添加JSDoc类型注释
在JavaScript脚本中通过JSDoc语法定义类型,让TypeScript自动识别。示例:/** * @typedef {Object} UserOptions * @property {string} username - 用户名 * @property {boolean} isActive - 用户状态 */ /** * 初始化用户信息 * @param {UserOptions} opts - 用户配置参数 */ export function initUser(opts) { // 脚本逻辑实现 }添加配套的TypeScript类型声明文件
在JS脚本所在目录下创建同名的.d.ts文件,手动定义类型。比如脚本名为utils.js,则创建utils.d.ts:export interface UserOptions { username: string; isActive: boolean; } export function initUser(opts: UserOptions): void;调整脚本的导出方式
如果原脚本是通过全局变量(比如window.xxx)暴露功能,改成ES模块导出格式,适配Next.js的模块系统:// 原全局导出方式 // window.utils = { initUser: /* ... */ }; // 修改为ES模块导出 export const utils = { initUser: /* ... */ };临时忽略类型检查(不推荐长期使用)
若暂时不需要严格类型校验,可在导入语句上方添加注释忽略报错:// @ts-ignore import { initUser } from '../scripts/utils';
内容的提问来源于stack exchange,提问作者Charlie
相关产品推荐
相关产品推荐

