老师在讲到混合类型的时候,有这么一句代码:
let counter = (function(start:number){}) as Counter
counter.interval = 123
counter.reset = function(){}
我不理解这里为什么要使用类型断言,所以我试着写成一般人的思路:
let counter:Counter
counter = function(start:number){}
counter.interval = 123
counter.reset = function(){}
但是居然报错了,报错信息为 Type ’ (start:number) => void ’ is not assignable to type ‘Counter’ property ‘reset’ is missing in type (start:number) => void
问题有两个:
1>为什么这样写是错误的?
2>我可能有一种错觉,觉得类型断言还是少用一点比较好,什么时候用比较合适呢?