我如何创建一个函数类型Creator<X>,它只允许创建A或B,同时保持您知道得到的类型的质量?
这不是我想要的:
type C = A|B
type Creator = () => C; // requires a type predicate for type safety使用谓词类型,可以区分值是否符合一种类型或另一种类型。这就给我想要避免的界面使用者增加了一些额外的工作。相反,我想要一个客户端来实现接口,比如说
export creator : Creator<A> = () => return new A(); // should be OK! 拒不允许
export creator : Creator<number> = () => return 42; // NOT OK! 我有TS游乐场设置让玩这个很容易。
发布于 2022-02-17 07:02:24
https://stackoverflow.com/questions/71153617
复制相似问题