[建议]creator3.4.1 instantiate<T>(original: T): T;另起个名字

看注释
instantiate<T>(original: T): T; 是为了克隆
instantiate(prefab: Prefab): Node; 是为了实例化预制体
在调用时,如果传入的对象是 Prefab | undefined ,则会被识别为调用 instantiate<T>(original: T): T;
即: instantiate<Prefab | undefined>(original: Prefab | undefined): Prefab | undefined;
不了解的人容易弄错, 导致卡壳一会, 转到定义看下, 才明白要加一下断言或者判断非空,才能让编译器明白这里是传入 Prefab (实际上我已经在合理的地方判断过非空了, 这里是安全可用的)

既然泛型的方法是为了克隆,为什么不另外起个名字呢?

1赞

嗯嗯,确实可以把 Prefab 的 instantiate 单独作为一个接口,其它类型包含其它资源通过 clone(src: T): T 获取