参考:function deepCopy(obj: ESObject): ESObject { if (typeof obj !== "object" || obj === null) { return obj; } let copy: ESObject; if (Array.isArray(obj)) { copy = []; for (let i = 0; i < obj.length; i++) { copy[i] = deepCopy(obj[i]); } } else { copy = {}; for (let i = 0; i < obj.length(); i++) { let key:ESObject=obj[i]; if (obj.hasOwnProperty(key)) { copy[key] = deepCopy(obj[key]); } } } return copy; } let arr1:Array<number> = new Array<number>(1, 2, 3); let arr2:Array<number> = deepCopy(arr1); arr2[2] = 4; console.log('arr1: '+String(arr1)); console.log('arr2: '+String(arr2));
参考: