1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
//// [spreadIdenticalTypesRemoved.ts]
interface Animal {
name: string;
kind: string;
age: number;
location: string;
owner: object;
}
function clonePet(pet: Animal, fullCopy?: boolean) {
return {
name: pet.name,
kind: pet.kind,
...(fullCopy && pet),
}
}
interface Animal2 {
name: string;
owner?: string;
}
function billOwner(pet: Animal2) {
return {
...(pet.owner && pet),
paid: false
}
}
//// [spreadIdenticalTypesRemoved.js]
"use strict";
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
function clonePet(pet, fullCopy) {
return __assign({ name: pet.name, kind: pet.kind }, (fullCopy && pet));
}
function billOwner(pet) {
return __assign(__assign({}, (pet.owner && pet)), { paid: false });
}
|