这个提示是什么意思,我执行也没报错啊

你鼠标移上去不是会提示你报错内容吗?很明显是告诉你对象可能为空

image 加上判断也没用啊
image 去掉方法反而不报错

block类型是ccNode吗?

image 已经声明了是Node

那就是类型错误,该成let cmp=block.getComponent(“Block”) as Block;cmp.move()

getComponent("Block") 改为 getComponent(Block) 试试?

把Block导入应该就好了吧

对,写 as Block时,vsCode会自动导入的。

他这情况就是没导入,而且没有处理Block为空的情况

正常处理应该鼠标移上去看下报错原因的

image
改成这样确实不报错了

你改为getComponet(Block).move()也可以。

image
不行啊

block.getComponent(Block)!.move();

成了,谢谢各位大佬

你这ts提示还挺严格。其实你这样的写法是不推荐的,一不小心就会造成崩溃,你应该判断是否为空。
合理的写法应该是
let cmp=block.getComponent(Block);
if(cmp){
cmp.move()}

了解,感谢

这个提示是开启了严格模式后会有的,慢慢习惯就好了,或者关闭严格模式

getComponet(Block)?.move()