var test: () => void | null = null; 报错

随着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;

实在不喜欢就关了: 关于经常询问的 TypeScript 字段类型 null 报错问题 - Creator 3.0 - Cocos中文社区

哦,谢谢,明白问题了

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。