@@ -93,10 +93,9 @@ export function ensureShallowCopy(target: ProxyDraft) {
9393 target . copy = shallowCopy ( target . original , target . options ) ! ;
9494}
9595
96- function deepClone < T > ( target : T ) : T ;
97- function deepClone ( target : any ) {
98- if ( ! isDraftable ( target ) ) return getValue ( target ) ;
99- if ( Array . isArray ( target ) ) return target . map ( deepClone ) ;
96+ function deepClone < T > ( target : T ) : T {
97+ if ( ! isDraftable ( target ) ) return getValue ( target as object ) as T ;
98+ if ( Array . isArray ( target ) ) return target . map ( deepClone ) as T ;
10099 if ( target instanceof Map ) {
101100 const iterable = Array . from ( target . entries ( ) ) . map ( ( [ k , v ] ) => [
102101 k ,
@@ -106,15 +105,15 @@ function deepClone(target: any) {
106105 const SubClass = Object . getPrototypeOf ( target ) . constructor ;
107106 return new SubClass ( iterable ) ;
108107 }
109- return new Map ( iterable ) ;
108+ return new Map ( iterable ) as T ;
110109 }
111110 if ( target instanceof Set ) {
112111 const iterable = Array . from ( target ) . map ( deepClone ) ;
113112 if ( ! isBaseSetInstance ( target ) ) {
114113 const SubClass = Object . getPrototypeOf ( target ) . constructor ;
115114 return new SubClass ( iterable ) ;
116115 }
117- return new Set ( iterable ) ;
116+ return new Set ( iterable ) as T ;
118117 }
119118 const copy = Object . create ( Object . getPrototypeOf ( target ) ) ;
120119 for ( const key in target ) copy [ key ] = deepClone ( target [ key ] ) ;
0 commit comments