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 49 50 51 52 53
|
//// [spreadExpressionContextualType.ts]
// Repro from #43966
interface Orange {
name: string;
}
interface Apple {
name: string;
}
function test<T extends Apple | Orange>(item: T): T {
return { ...item };
}
function test2<T extends Apple | Orange>(item: T): T {
const x = { ...item };
return x;
}
//// [spreadExpressionContextualType.js]
"use strict";
// Repro from #43966
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 test(item) {
return __assign({}, item);
}
function test2(item) {
var x = __assign({}, item);
return x;
}
//// [spreadExpressionContextualType.d.ts]
interface Orange {
name: string;
}
interface Apple {
name: string;
}
declare function test<T extends Apple | Orange>(item: T): T;
declare function test2<T extends Apple | Orange>(item: T): T;
|