定义如下 export interface Options { serializer?: (value: T) => string; deserializer?: (value: string) => T; defaultValue?: IFunction | T; } 使用 if (typeof options.defaultValue === "function") { options.defaultValue(); } 出现下面的报错:  为什么在使用typeof的情况下ts对类型判断还是有问题?平常在消费联合类型的时候,都只需要借助typeof就能达到缩小类型范围的目的,但是这里没有效果,我想问下什么时候会出现这种问题? 我知道解决方案: 1. 通过强制的类型断言来告诉ts这是一个函数 2. 通过is关键字来做类型预测 但是不知道什么时候需要这么去解决,只有报错的时候才会尝试这么去解决,恳求大佬解惑。