2024年8月26日
Flow从面向对象程序中借鉴的最佳概念之一是泛型的概念。在许多情况下,泛型对于细化类型检查至关重要。
泛型在哪些地方有用?
假设你有一个函数memoize。使用 Flow 类型,它可能看起来像这样:
function memoize(func: (key: any) => any): (key: any) => any {
const registry = new Map();
return function(key: any): any {
let value = registry.get(key);
if (typeof value === 'undefined') {
value = func(key);
registry.set(key, value);
}
return value;
};
}
问题是它会吞噬以下细节func:
// Type is (val: number) => bo…