【发布时间】:2019-01-16 22:30:32
【问题描述】:
据我了解,Typescript 中的--strictFunctionTypes 编译器选项阻止了一个非常常见的多态性用例:
type Handler = (request: Request) => Response
const myHandler: Handler = (request: Request & { extraArg: boolean }) => {
return !!request.extraArg
}
通常,我假设strict 系列中的所有编译器选项都有一些很大的好处,但在这种情况下,我所看到的只是它阻止了非常合乎逻辑的行为。
那么在哪些情况下这个选项实际上会带来一些好处?它可以防止哪些有害场景?
【问题讨论】:
-
不管它的类型级效果如何,我建议打开此选项以单独提高类型检查速度,如下所述:github.com/microsoft/TypeScript/wiki/…
标签: typescript interface strict compiler-options