js不入流了吗

提示这个好像是因为scoreAudio的类型好像得定义成块,要写全{type: cc.AudioClip, default: null}

这个教程是18年的 估计是creator更新了写法 蛋疼

你把这段话复制粘贴到有道翻译上

请在类“NewClass”中更改属性“scoreAudio”的定义。v1.10以来,
如果CCClass中的属性是RawAsset,则不能缩写。
请填写完整的表格。
例如,如果你有一个属性Texture2D,旧的定义是:

scoreAudio: cc.Texture2D,

如果你正在使用JS,你应该使用:
scoreAudio: {
type: cc.Texture2D,// use ‘type:’ to declare Texture2D object directly
default: null, // object’s default value is null
},

如果你正在使用TS,你应该使用:
@property({
type: cc.Texture2D,// use ‘type:’ to declare Texture2D object directly
})
%s: cc.Texture2D = null;

你这里cc.Texture2D替换成cc.AudioClip即可

哈哈 你是没有面向对象语言基础吧

cc.Texture2D是图形纹理的类型。。。啊
教程里的cc.AudioClip是个声音的类型,把他换成图形纹理?

是这么回事,但是官方的js摘星星教程我看的很明白,一点也不费力,虽然是因为它每行代码都有注解
但是这个ts版的摘星星https://blog.csdn.net/potato47/article/details/79254524
也是每行都有注解,我还是看的难受

For example

英文不好的话, 善用翻译

今天你做一道题, 问 2 x 3 = ?
你不会, 老师提醒你: “你看, 例如 1 x 3 ,其实就是 3 个 1 相加, 就是 1 + 1 + 1 = 3”
你听了老师的话, 发出了这样的疑问, 我这题明明是 2 x 3, 你怎么给我说 1 x 3 的解法?

好吧 这段系统提示我理解没转过弯
应该是系统用cc.Texture2D的范例打了个比方
不是要我把cc.AudioClip 改成cc.Texture2D

这教程是18年的,现在的写法应该是从:
@property(cc.AudioClip)
private scoreAudio: cc.AudioClip = null;

变更成了
@property({ type: cc.AudioClip,
})
scoreAudio: cc.AudioClip = null;

个人感觉ts用得比js顺手很多。

你终于看到是打个比方了,看文档一定不要急

就怕改成这样以后,又有一个人在定义Texture2D的时候说:“系统为什么让我把Texture2D声明成 cc.AudioClip ????什么意思?”,这里的关键是看出来这是一个举例,你如果一开始就看出来是举例也能明白了

看着还好吧,难道因为加了类型代码不够简洁所以看着难受?

嗯 确实是这么个感觉 但是也有我对 对象声明这部分不熟悉的缘故
比如那几个声明中的public 我想了老半天为什么要用public

C++、C#、Java之类的写多了,看着public private什么的就亲切了

其实你可以把ts写成js一样,基本无缝切换

你无法要求每一个同事写的代码都那么的规整规范,而且还会有祖传代码的存在,不通读全部代码,有时候你都不知道一些函数到底是在哪注入到js对象里的,各种黑魔法太多

ts的提示不香吗

如果只是要提示,intellij idea 就足够了。只要你的方法,注释写好类型。就能够在代码提示里看到。
如图:

暂时还是用js,ts一点点学

我用ts 感觉和写js没差别 还有和as非常像 智能提示 自动导入 面向对象 真的香 用ts我还真没犯过语法的错误了:innocent: