expect(tupleRef.value[4].value).toBe(1)
})
+ it('should keep symbols', () => {
+ const customSymbol = Symbol()
+ const obj = {
+ [Symbol.asyncIterator]: { a: 1 },
+ [Symbol.unscopables]: { b: '1' },
+ [customSymbol]: { c: [1, 2, 3] }
+ }
+
+ const objRef = ref(obj)
+
+ expect(objRef.value[Symbol.asyncIterator]).toBe(obj[Symbol.asyncIterator])
+ expect(objRef.value[Symbol.unscopables]).toBe(obj[Symbol.unscopables])
+ expect(objRef.value[customSymbol]).toStrictEqual(obj[customSymbol])
+ })
+
test('unref', () => {
expect(unref(1)).toBe(1)
expect(unref(ref(1))).toBe(1)
}
const el = document.createElement('DIV')
bailType(el)
+
+function withSymbol() {
+ const customSymbol = Symbol()
+ const obj = {
+ [Symbol.asyncIterator]: { a: 1 },
+ [Symbol.unscopables]: { b: '1' },
+ [customSymbol]: { c: [1, 2, 3] }
+ }
+
+ const objRef = ref(obj)
+
+ expectType<{ a: number }>(objRef.value[Symbol.asyncIterator])
+ expectType<{ b: string }>(objRef.value[Symbol.unscopables])
+ expectType<{ c: Array<number> }>(objRef.value[customSymbol])
+}
+
+withSymbol()