据我理解,Typescript中的--strictFunctionTypes
编译选项会阻止一种非常常见的多态用法:
type Handler = (request: Request) => Response
const myHandler: Handler = (request: Request & { extraArg: boolean }) => {
return !!request.extraArg
}
一般来说,我认为strict
系列中的所有编译器选项都有很大的好处,但在这种情况下,我看到的只是它阻止了一个非常符合逻辑的行为。
那么,在哪些情况下此选项实际上会给出一些好处? 它又可以防止哪些有害的场景发生呢?