有没有一种方法,特别是作为函数定义的一部分,让我们对函数定义强制一个类型约束?
例如:
type IMyFunc<P = any,R = any> = (p: P) => R;
function myFunc<P = any, R = any>(p: P):R { ... }
如何让Typescribe编译器验证myFunc
是接口IMyFunc
的实现?
我发现的一种方法是使用一个单独的声明来验证这个...
const f: IMyFunc = myFunc;
但是,在这种情况下,泛型类型参数默认为any
(所以除了默认情况外,您不能导出和使用f
).我想它总比什么都没有好,但如果它存在的话,我更喜欢更简洁的东西——最好是我可以作为myFunc
定义的一部分提供的东西.
例如,如果你能做到这一点就好了:
function myFunc<P = any, R = any>(params: P):R {
...
} : IMyFunc<P,R>;