你鼠标移上去不是会提示你报错内容吗?很明显是告诉你对象可能为空
加上判断也没用啊
去掉方法反而不报错
block类型是ccNode吗?
已经声明了是Node
那就是类型错误,该成let cmp=block.getComponent(“Block”) as Block;cmp.move()
getComponent("Block") 改为 getComponent(Block) 试试?
把Block导入应该就好了吧
对,写 as Block时,vsCode会自动导入的。
他这情况就是没导入,而且没有处理Block为空的情况
正常处理应该鼠标移上去看下报错原因的

改成这样确实不报错了
你改为getComponet(Block).move()也可以。

不行啊
block.getComponent(Block)!.move();
成了,谢谢各位大佬
你这ts提示还挺严格。其实你这样的写法是不推荐的,一不小心就会造成崩溃,你应该判断是否为空。
合理的写法应该是
let cmp=block.getComponent(Block);
if(cmp){
cmp.move()}
了解,感谢
这个提示是开启了严格模式后会有的,慢慢习惯就好了,或者关闭严格模式
getComponet(Block)?.move()
