_value : Proxy(Array) [[Handler]]: Object [[Target]]: Array(1) ts 中如何拿到[[Target]]: Array(1)
时间: 2024-09-24 08:23:47 浏览: 42
Spring源代码解析(五):Spring_AOP获取Proxy.doc
在TypeScript中,当使用`Proxy`对数组或其他对象进行代理时,`[[Target]]`是一个特殊的内部属性,它指向被代理的实际对象。如果你想在代理对象上获取底层的原始数组(在这个例子中是一个只有一个元素的数组),你可以直接访问`target`属性,而不是`[[Target]]`,因为它已经转换为了ECMAScript规范支持的形式。
以下是一个简单的示例:
```typescript
let arr: any[] = [1, 2, 3]; // 原始数组
const proxyArray = new Proxy(arr, {});
// 现在,proxyArray.target 就是原始数组
console.log(proxyArray.target); // 输出: Array(1)
// 注意,`proxyArray[[Target]]` 在TypeScript中通常不可直接使用,因为`[[`和`]`语法是保留字
// 所以你不会看到这样的形式,而是直接使用`proxyArray.target`
```
如果你确实需要访问`[[Target]]`,可以在运行时环境中使用`Reflect.getPrototypeOf(proxy)`,但这在TypeScript中不是推荐的方式,因为可能会导致类型错误。
阅读全文