Skip to content

Structural typing when specifying component props in TSX #15706

Closed
@cnshenj

Description

@cnshenj

TypeScript Version: 2.3.2

Code

type MyComponentProps = {
    name: string;
};

class MyComponent extends React.Component<MyComponentProps, void> {}

class MyClass {
    public name: string;
    public age?: number;
}

const my: MyClass = { name: "Jack", age: 20 };
const props: MyComponentProps = { ...my }; // This works
const c1 = <MyComponent {...my} />; //  error TS2322: Property 'age' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<MyComponent> & Readonly<{ children?: ReactNode; }>...'
const c2 = <MyComponent {...props} />; // This works

Metadata

Metadata

Assignees

No one assigned

    Labels

    DuplicateAn existing issue was already created

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions