Skip to content

problem with interfaces  #6175

Description

@jeevan-reddy

Error:
Argument of type '{ size: number; label: string; }' is not assignable to parameter of type '{ label: string; }'.
Object literal may only specify known properties, and 'size' does not exist in type '{ label: string; }'.

My typesscript version is 1.7.5

Steps to recreate the Error:

  1. Create a .ts file named script.ts
  2. type the following code :
function printLabel(labelledObj: {label: string}) {
  console.log(labelledObj.label);
}
var myObj = {size: 10, label: "Size 10 Object"};  // myObj is of type {size:number;label:string}
// printLabel(myObj);
printLabel({size: 10, label: "Size 10 Object"});   // the object being passed to printLabel is also of type {size:number;label:string}
  1. Compile the script.ts using command tsc script either from command prompt/powershell

it is clearly mentioned in documentation that if we send extra arguments it is ok .please refer to attached code-snippet
code-snippet

But what is the difference if i assign an object to a variable , pass that variable as argument and if i directly pass the object as argument ?

Activity

  1. kitsonk commented on Dec 20, 2015

    @kitsonk
    Contributor

    The handbook is currently wrong as of TypeScript 1.6.3. It was discussed in #3755 and was changed in #3823.

    IIRC, the team are in the process of doing a whole update of the handbook, because there are a few other issues with it.

  2. DanielRosenwasser commented on Dec 20, 2015

    @DanielRosenwasser
    Member

    Thanks for catching this jeevan-reddy, I'll be amending this in microsoft/TypeScript-Handbook#64

  3. mhegazy commented on Jan 7, 2016

    @mhegazy
    Contributor

    This issue was moved to microsoft/TypeScript-Handbook#139

  4. DanielRosenwasser commented on Feb 16, 2016

    @DanielRosenwasser
    Member

    Should be fixed when the docs get refreshed.

  5. locked and limited conversation to collaborators on Jun 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

DocsThe issue relates to how you learn TypeScript

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions