Blame view

天文台pc/tianwentai-ui/node_modules/@emotion/weak-memoize/src/index.ts 484 Bytes
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  let weakMemoize = function <Arg extends object, Return>(
    func: (arg: Arg) => Return
  ): (arg: Arg) => Return {
    let cache = new WeakMap<Arg, Return>()
    return (arg: Arg) => {
      if (cache.has(arg)) {
        // Use non-null assertion because we just checked that the cache `has` it
        // This allows us to remove `undefined` from the return value
        return cache.get(arg)!
      }
      let ret = func(arg)
      cache.set(arg, ret)
      return ret
    }
  }
  
  export default weakMemoize