Typescript泛型函数不会抱怨回调返回类型。它不应该抱怨类型与对象不匹配吗?为什么这是有效的打字稿?
const a = <T>(shape: T | (() => T)): T => {
return shape instanceof Function ? shape() : shape;
}
const func = () => ({ x: '', o: '' });
a<{ x: string }>(func); // this should fail to compile
a<{ x: string }>({ x: '', o: '' }); // fails to compile
答案 0 :(得分:0)
这是一个已知的TypeScript错误。需要Github issue的fix。
找不到合适的解决方法
答案 1 :(得分:0)
上下文类型(在您的情况下为a<{ x: string }>(func);
)不会执行过多的属性检查,对此没有任何规范,所以也许是设计使然