【发布时间】:2021-05-20 17:16:02
【问题描述】:
我想在 Typescript 中使用 WeakRef。我尝试使用目前可用的最新版本(4.1.5)。 我有一个编译错误:
const toIdString = (o: Object): string =>
o.constructor.name + JSON.stringify(o);
export class MemoCache {
static handle<T>(o: T): T {
const id = toIdString(o);
const cached = MemoCache.map.get(id);
if (cached) {
return cached.deref() as T;
}
MemoCache.map.set(id, new WeakRef(o));
return o;
}
static map = new Map<string, WeakRef>();
}
我有编译错误。
src/Memoizer.ts:11:31 - error TS2304: Cannot find name 'WeakRef'.
11 MemoCache.map.set(id, new WeakRef(o));
~~~~~~~
src/Memoizer.ts:15:32 - error TS2304: Cannot find name 'WeakRef'.
15 static map = new Map<string, WeakRef>();
~~~~~~~
但是,这是 ECMAScript 2021。Chrome 88 似乎可以理解它。 我有节点 15.8.0(最后一个) 你知道如何让 Typescript 理解 WeakRef 吗?
【问题讨论】:
-
使用 ESNext,也许吧? github.com/microsoft/TypeScript/blob/master/src/lib/…
-
是的,伙计们!谢谢!
标签: javascript node.js typescript ecmascript-next tc39