function _extends() { _extends = Object.assign || function(target) { for(var i = 1; i < arguments.length; i++){ var source = arguments[i]; for(var key in source){ if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } // @filename: file.tsx // @jsx: preserve // @module: amd // @noLib: true // @skipLibCheck: true // @libFiles: react.d.ts,lib.d.ts var React = require('react'); var obj = { yy: 10, yy1: "hello" }; var obj1 = { yy: true }; var obj2 = { yy: 500, "ignore-prop": "hello" }; var defaultObj; // OK var c1 = /*#__PURE__*/ React.createElement(OneThing, null); var c2 = /*#__PURE__*/ React.createElement(OneThing, _extends({ }, obj)); var c3 = /*#__PURE__*/ React.createElement(OneThing, _extends({ }, { })); var c4 = /*#__PURE__*/ React.createElement(OneThing, _extends({ }, obj1, obj)); var c5 = /*#__PURE__*/ React.createElement(OneThing, _extends({ }, obj1, { yy: 42 }, { yy1: "hi" })); var c6 = /*#__PURE__*/ React.createElement(OneThing, _extends({ }, obj1, { yy: 10000, yy1: "true" })); var c7 = /*#__PURE__*/ React.createElement(OneThing, _extends({ }, defaultObj, { yy: true }, obj)); // No error. should pick second overload var c8 = /*#__PURE__*/ React.createElement(OneThing, { "ignore-prop": 100 }); var c9 = /*#__PURE__*/ React.createElement(OneThing, _extends({ }, { "ignore-prop": 200 })); var c10 = /*#__PURE__*/ React.createElement(OneThing, _extends({ }, obj2, { yy1: "boo" })); export { };