给Node添加属性,该怎么处理.d.ts文件

目前想在Node中加个方法getOrAddComponent,内容已经通过Object.defineProperty定义了,但是编辑器中不能调用这个方法,所以我就弄了个xx.d.ts文件,放在工程根目录,定义如下

import { Component, __private } from 'cc';
declare namespace cc {
    export interface Node {
        getOrAddComponent<T extends Component>(classConstructor: __private.__types_globals__Constructor<T>): T;
    }
}

但还是报错,后面我关了严格模式就没问题了,但是关严格模式这个.d.ts都不用加,所以有人知道怎么搞吗?刚开始搞3.x的项目,严格模式还是先用着吧

declare namespace cc {
改成
declare module ‘cc’ {

如果是2.x的话 ,在一个通用的ts文件中 新增


declare global {
 namespace cc {
        interface Node {
          //...新增的
        }
}

不建议扩展 Node 属性

我一开始也没打算这样写,自己弄了个工具类去实现了,后面做到一个tween里同时控制节点的缩放和透明度时,想到了给节点拓展一个opacity,在get set方法里获取UIOpacity.opacity,然后就遇到这么个坑,逻辑上是没啥问题的,运行也可以,唯一的问题就是这里,很恼火 :joy:

太感谢了,真可以