diff --git a/types/airbnb-prop-types/airbnb-prop-types-tests.ts b/types/airbnb-prop-types/airbnb-prop-types-tests.ts index 1c05acbd3f..9272fe6ddc 100644 --- a/types/airbnb-prop-types/airbnb-prop-types-tests.ts +++ b/types/airbnb-prop-types/airbnb-prop-types-tests.ts @@ -104,12 +104,13 @@ AirbnbPropTypes.forbidExtraProps({ // $ExpectType Requireable AirbnbPropTypes.integer(); -// $ExpectType Requireable<{}> -AirbnbPropTypes.keysOf(PropTypes.number); -// $ExpectType Requireable<{}> -AirbnbPropTypes.keysOf(PropTypes.number, 'foo'); -// $ExpectType Requireable<{}> -AirbnbPropTypes.keysOf(PropTypes.oneOf(['foo', 'bar'])); +const top = ((x?: T): T => x!)(); +type Top = typeof top; +declare function validateRequireableTop(x: React.Requireable): void; + +validateRequireableTop(AirbnbPropTypes.keysOf(PropTypes.number)); +validateRequireableTop(AirbnbPropTypes.keysOf(PropTypes.number, 'foo')); +validateRequireableTop(AirbnbPropTypes.keysOf(PropTypes.oneOf(['foo', 'bar']))); // $ExpectType Requireable AirbnbPropTypes.mutuallyExclusiveProps(PropTypes.number); @@ -156,23 +157,17 @@ AirbnbPropTypes.requiredBy('foo', PropTypes.string); // $ExpectType Validator AirbnbPropTypes.requiredBy('bar', PropTypes.number, 42).isRequired; -// $ExpectType Requireable<{}> -AirbnbPropTypes.restrictedProp(); -// $ExpectType Requireable<{}> -AirbnbPropTypes.restrictedProp(() => 'Error'); -// $ExpectType Requireable<{}> -AirbnbPropTypes.restrictedProp(() => new Error('Error')); +validateRequireableTop(AirbnbPropTypes.restrictedProp()); +validateRequireableTop(AirbnbPropTypes.restrictedProp(() => 'Error')); +validateRequireableTop(AirbnbPropTypes.restrictedProp(() => new Error('Error'))); -// $ExpectType Requireable<{}> -AirbnbPropTypes.sequenceOf({ validator: PropTypes.number }); -// $ExpectType Requireable<{}> -AirbnbPropTypes.sequenceOf({ validator: PropTypes.number }, { validator: PropTypes.string }); -// $ExpectType Requireable<{}> -AirbnbPropTypes.sequenceOf( +validateRequireableTop(AirbnbPropTypes.sequenceOf({ validator: PropTypes.number })); +validateRequireableTop(AirbnbPropTypes.sequenceOf({ validator: PropTypes.number }, { validator: PropTypes.string })); +validateRequireableTop(AirbnbPropTypes.sequenceOf( { validator: PropTypes.number, min: 0, max: 10 }, { validator: PropTypes.string }, { validator: PropTypes.bool }, -); +)); interface ShapeShape { foo: string; diff --git a/types/ember/test/ember-module-tests.ts b/types/ember/test/ember-module-tests.ts index 5935578d3e..b37882a6cc 100644 --- a/types/ember/test/ember-module-tests.ts +++ b/types/ember/test/ember-module-tests.ts @@ -2,8 +2,12 @@ import Ember from 'ember'; // $ Ember.$; // $ExpectType JQueryStatic + +const top = ((x?: T): T => x!)(); +type Top = typeof top; +declare function expectTypeNativeArrayTop(x: Ember.NativeArray): void; // A -Ember.A(); // $ExpectType NativeArray<{}> +expectTypeNativeArrayTop(Ember.A()); Ember.A([1, 2]); // $ExpectType NativeArray // addListener Ember.addListener({ a: 'foo' }, 'a', {}, () => {}); diff --git a/types/postman-collection/index.d.ts b/types/postman-collection/index.d.ts index 0b32209b4f..4b1b5f9af5 100644 --- a/types/postman-collection/index.d.ts +++ b/types/postman-collection/index.d.ts @@ -9,7 +9,7 @@ export interface PropertyBaseDefinition { description?: string | DescriptionDefinition; } -export class PropertyBase implements PropertyBaseDefinition { +export class PropertyBase implements PropertyBaseDefinition { description?: string | DescriptionDefinition; constructor(definition?: PropertyBaseDefinition | {info: PropertyBaseDefinition} | string); @@ -42,7 +42,7 @@ export interface PropertyDefinition extends PropertyBaseDefinition { disabled?: boolean; } -export class Property extends PropertyBase implements PropertyDefinition { +export class Property extends PropertyBase implements PropertyDefinition { disabled: boolean; id: string; name: string; diff --git a/types/promise-timeout/promise-timeout-tests.ts b/types/promise-timeout/promise-timeout-tests.ts index 60c4597a15..2cae7e384b 100644 --- a/types/promise-timeout/promise-timeout-tests.ts +++ b/types/promise-timeout/promise-timeout-tests.ts @@ -7,4 +7,8 @@ acceptError(new TimeoutError()); timeout(); // $ExpectError timeout(new Promise(() => { })); // $ExpectError -timeout(new Promise(() => { }), 1000); // $ExpectType Promise<{}> +const top = ((x?: T): T => x!)(); +type Top = typeof top; +declare function expectPromiseTop(x: Promise): void; + +expectPromiseTop(timeout(new Promise(() => { }), 1000)); diff --git a/types/react-broadcast/react-broadcast-tests.tsx b/types/react-broadcast/react-broadcast-tests.tsx index 6f3466e729..2e5e097434 100644 --- a/types/react-broadcast/react-broadcast-tests.tsx +++ b/types/react-broadcast/react-broadcast-tests.tsx @@ -8,7 +8,7 @@ class ExampleOfUsingReactBroadcast extends React.Component {
- {state =>
{state}
} + {(state: React.ReactNode) =>
{state}
}
diff --git a/types/saywhen/saywhen-tests.ts b/types/saywhen/saywhen-tests.ts index 3eb72825fe..6bbb0c1aaf 100644 --- a/types/saywhen/saywhen-tests.ts +++ b/types/saywhen/saywhen-tests.ts @@ -13,6 +13,10 @@ const spy: JasmineSpy = jasmine.createSpy('test'); when(spy); // $ExpectType CallHandler when(spy).isCalled; // $ExpectType Proxy -when.captor(); // $ExpectType MatcherProxy<{}> +const top = ((x?: T): T => x!)(); +type Top = typeof top; +declare function expectMatcherProxyTop(x: (arg: Top) => boolean): void; + +expectMatcherProxyTop(when.captor()); when.captor(jasmine.any(Number)); // $ExpectType MatcherProxy when.noConflict(); // $ExpectType void diff --git a/types/yup/yup-tests.ts b/types/yup/yup-tests.ts index 152fdd25e4..ff45c00a92 100644 --- a/types/yup/yup-tests.ts +++ b/types/yup/yup-tests.ts @@ -383,7 +383,9 @@ arrSchema.min(5, "min"); arrSchema.min(5, () => "min"); arrSchema.compact((value, index, array) => value === array[index]); -yup.array(); // $ExpectType ArraySchema<{}> +const arr = yup.array(); +const top = ((x?: T): T => x!)(); +const validArr: yup.ArraySchema = arr; yup.array(yup.string()); // $ExpectType ArraySchema yup.array().of(yup.string()); // $ExpectType ArraySchema