随着creator3.0 官方认定js不合适开发游戏以来,开始用ts开发,有个语法问题问哈大佬们。 js中 初始化一个函数为null的时候直接:var test = null; 在ts中要怎么写啊,var test: () => void | null = null; 这么写要报错 。又不想用 var test:any = null; 有大佬指导哈吗?
test后面接的是类型,建议把es6和ts教程过一下
直接 let test 呗,初始化为null干嘛?或者let test:Function;强调下类型。实在强迫症就let test:Function=null!
或者干脆关掉严格模式就是了
谢谢,可能还是不能具体定义类型吧
额 …
首先谢谢了,的确没想到直接用Function,如果这样的话,我大概会直接用any, 其实这个只是拿出来的一个列子。我具体用的时候是把这个变量放到Object里的:var tab = {call:()=>void}; 初始化的时候call不能赋值,要再后面逻辑里赋值。如果没法具体声明,估计就直接用any了。
[quote=“404340087, post:6, topic:106325”]
var tab = {call:()=>void};
[/quote] 纠正一哈 var tab : {call:()=>void}; 不是太熟ts,见笑了
哎,感觉ts对null的处理太不友好了,很多地方,不加没办法,加了又报错。
这是 ts 语法优先级问题哦!可以加个括号解决:
let test: (() => void) | null = null;
哦,谢谢,明白问题了
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。