Skip to content

Object.assign({}) seems to always return a type any #29348

Open

Description

TypeScript Version: 3.3.0-dev.20190110

Search Terms: Object.assign

Code

function foo(): {foo: string} {
    return Object.assign({});
}

Interestingly the code:

function bar(): {bar: string} {
    return Object.assign({}, {bar: 1});
}

does report the expected error

Expected behavior: TypeScript should report an error because the type returned by return Object.assign({}); does not mach {foo: string} but instead the type any is assumed.

Actual behavior: No error is shown

Playground Link: https://www.typescriptlang.org/play/index.html#src=function%20foo()%3A%20%7Bfoo%3A%20string%7D%20%7B%0D%0A%20%20%20%20return%20Object.assign(%7B%7D)%3B%0D%0A%7D%0D%0A

Related Issues: no

Activity

  1. changed the title [-]Object.assert({}) [/-] [+]Object.assert({}) seems to always return a type any[/+] on Jan 10, 2019
  2. changed the title [-]Object.assert({}) seems to always return a type any[/-] [+]Object.assign({}) seems to always return a type any[/+] on Jan 10, 2019
  3. weswigham commented on Jan 10, 2019

    @weswigham
    Member

    We should probably make it forbidden for the catch-all signature on Object.assign to take a single argument.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA bug in TypeScriptDomain: lib.d.tsThe issue relates to the different libraries shipped with TypeScript

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions