// @filename: file.tsx // @jsx: preserve // @module: amd // @noLib: true // @skipLibCheck: true // @libFiles: react.d.ts,lib.d.ts import React = require('react') declare function OneThing(): JSX.Element; declare function OneThing(l: {yy: number, yy1: string}): JSX.Element; let obj = { yy: 10, yy1: "hello" } let obj2: any; // Error const c0 = ; // extra property; const c1 = ; // missing property; const c2 = ; // type incompatible; const c3 = ; // This is OK because all attribute are spread const c4 = ; // extra property; const c5 = ; // type incompatible; const c6 = ; // Should error as there is extra attribute that doesn't match any. Current it is not const c7 = ; // Should error as there is extra attribute that doesn't match any. Current it is not declare function TestingOneThing(j: {"extra-data": string}): JSX.Element; declare function TestingOneThing(n: {yy: string, direction?: number}): JSX.Element; // Error const d1 = const d2 = declare function TestingOptional(a: {y1?: string, y2?: number}): JSX.Element; declare function TestingOptional(a: {y1?: string, y2?: number, children: JSX.Element}): JSX.Element; declare function TestingOptional(a: {y1: boolean, y2?: number, y3: boolean}): JSX.Element; // Error const e1 = const e2 = const e3 = const e4 = Hi