我之前也碰到过,大概就是这个流程
改tsconfig-》ts编译成js-》cc找不到-》creator开发者选项-》cc找到了-》tsconfig被改回去了-》感叹世界真奇妙
我之前也碰到过,大概就是这个流程
改tsconfig-》ts编译成js-》cc找不到-》creator开发者选项-》cc找到了-》tsconfig被改回去了-》感叹世界真奇妙
如果你初学,那你应该是不需要那个namespace的,跳过那一节吧,tsconfig.json用默认的不要改,ts代码都放在assets目录下,就可以了。ts都是Creator自动编译的,不需要我们操心tsconfig.json。
其实文档不该让用户改项目文件夹下的tsconfig.json,因为Creator的ts工作逻辑是这样:
综上,绝大多数人是不需要使用namespace的,如果非要使用, 那应该新建一个文件夹,在那个文件夹下配置好tsconfig.json,写好ts,打包成单个js文件后,再拷贝回Creator项目assets文件夹下作为插件导入。
这个解释比较到位,遇到过同样的问题,最后通过新建一个文件夹和tsconfig.json解决。可以在新的tsconfig.json里面配置输出文件直接指向目标aasets目录,这样就不用拷贝啦。。。。
谢谢兄弟指导,关键是要在那个文件中新建一个tsconfig.json,十分感谢!
这个在大项目中是有意义的,可以定义全局变量又不污染顶层,方便写代码,文档还是有必要的
请收下我的膝盖!
文档可以更新啦
好的 12345
谢谢。再求问一下,如果我想写一些全局的工具类,并且不继承CC组件(也就不会作为组件拖到某个节点上)。如果不用namespace应该怎么设置项目呢?
我在asset下新建一个.ts文件,在里面创建了一个class,在其他继承cc组件的对象里面调用并new这个类的时候会报is not defined的错,好像creator并没有编译这个类。
Global.ts
class Global{
public static readonly Instance:Global = new Global();
public user: UserModel = null;
private constructor() {
super();
this.user = new UserModel();
}
....
}
export const G = Global.Instance;
Other.ts
import { G } from ".../G";
...
G.user.getUsername()
...
全局单例
这就是toddlxt告诉我的,你不用再问他了
谢谢,试了一下,export的时候会报错:

谢谢。跑了一下发现完全没问题。就是编译器自己会报个错。。
试一下在class Utils前面也加一个export
在windows上,creator v1.8.1上新建TS的helloworld项目,里面的默认的creator.d.ts有错误,导致一直显示’找不到名称“cc”’。我用1.6.1的creator.d.ts替换后就可以了。
照你的做搞定了,多谢
请教一下,outFile之后在CCC里导入为插件,只有一个文件很好弄,但是如果用的outDir,那么就会有很多文件,要一个一个导入为插件,有什么其他办法能够自动处理或者其他处理方式么?
(⊙﹏⊙)额。。。解决问题了,之前想要使用outDir是想在chrome调试的时候看到ts源文件的路径,但是现在发现就算使用outFile,只要加上
“inlineSourceMap”: true,
“inlineSources”: true,
两个编译参数之后,就能正确的在chrome调试中看到ts源文件内容了
我也遇到了一个命名空间拆分到多个文件里面无法导出,或者导出失败的问题