You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Typescript报错Morph未定义:同目录morph.ts导入失效原因排查

解决Morph is not defined导入失效问题

这个报错的核心逻辑很明确:你虽然导入了morph.ts文件,但里面的Morph类既没有被正确导出,也没被sketch.ts引入到当前作用域里。下面一步步帮你修复:

1. 先修正morph.ts的导出规则

在morph.ts里,你定义的Morph类必须用export关键字暴露出来,这样其他文件才能引用它。比如:

// morph.ts
export class Morph {
  setup(p: p5) {
    // 你的setup逻辑代码
  }

  draw(p: p5) {
    // 你的draw逻辑代码
  }
}

如果整个文件只导出这一个类,也可以用默认导出的方式:

// morph.ts
export default class Morph {
  // ... 类内部逻辑
}

2. 修改sketch.ts的导入语句

你原来写的import './morph'只是让编译器执行了morph.ts的代码,但并没有把Morph类引入到当前文件的作用域里,自然会提示“未定义”。根据morph.ts的导出方式对应修改:

  • 如果是命名导出(上面第一种写法),改成:
import 'p5';
import { Morph } from './morph'; // 解构导入具体的Morph类
  • 如果是默认导出(上面第二种写法),改成:
import 'p5';
import Morph from './morph'; // 直接导入默认导出的类

3. 额外的检查项

  • 确认tsconfig.json配置:如果用TypeScript编译,要保证module字段设为ESNext/ES6+,moduleResolution设为NodeNext或Node16,确保模块解析规则正常。
  • 文件名大小写:在Linux/macOS这类区分大小写的系统上,morph.ts和Morph.ts是两个不同文件,要保证导入语句里的文件名和实际文件名完全一致。

这样调整后,sketch.ts就能正确获取到Morph类,也就不会再出现Uncaught ReferenceError的报错了。

内容的提问来源于stack exchange,提问作者user3523406

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:43:57