Skip to content

[NewErrors] 4.3.0-dev.20210228 vs 4.2.2 #43004

Closed

Description

The following errors were reported by 4.3.0-dev.20210228, but not by 4.2.2

cdr/code-server

9 of 47 projects failed to build with the old tsc

lib/vscode/extensions/html-language-features/server/tsconfig.json

lib/vscode/extensions/typescript-language-features/tsconfig.json

ReactiveX/rxjs

7 of 11 projects failed to build with the old tsc

src/tsconfig.cjs.spec.json

src/tsconfig.esm5.rollup.json

typeorm/typeorm

tsconfig.json

reduxjs/redux-devtools

17 of 51 projects failed to build with the old tsc

packages/redux-devtools/tsconfig.json

  • error TS2322: Type 'MonitorProps' is not assignable to type 'IntrinsicAttributes & Omit<any, "monitorState" | "nextActionId" | "actionsById" | "stagedActionIds" | "skippedActionIds" | "committedState" | "currentStateIndex" | "computedStates" | "isLocked" | "isPaused" | "dispatch">'.
  • error TS2322: Type 'MonitorProps & { store: LiftedStore<S, A, MonitorState>; }' is not assignable to type 'IntrinsicAttributes & Omit<any, "monitorState" | "nextActionId" | "actionsById" | "stagedActionIds" | "skippedActionIds" | "committedState" | "currentStateIndex" | "computedStates" | "isLocked" | "isPaused" | "dispatch">'.

Activity

  1. DanielRosenwasser commented on Mar 1, 2021

    @DanielRosenwasser
    Member

    I think the Redux changes might have been caused by #42819. I think the hint for me is the Omit<any, ...>. (Wesley Wigham (@weswigham))

    The new "sufficiently overlaps" error is very confusing, but is expected fallout from #25330. I really wish we had discussed this at a design meeting since it's a potentially disruptive breaking change. In some of the examples above, we're seeing undesirable behavior due to strictPropertyInitialization being off. I guess testing a this.func and not calling it is always suspicious regardless of strictPropertyInitialization, so maybe that's why we never hit a similar issue with uncalled function checks. (Eli Barzilay (@elibarzilay), Ryan Cavanaugh (@RyanCavanaugh))

  2. weswigham commented on Mar 2, 2021

    @weswigham
    Member

    Daniel Rosenwasser (@DanielRosenwasser) I've tracked down the change that broke redux-devtools, and it's not that one; it's df5ffc0 . Omit<any, Whatever> is just an alias for {[index:string]: any; [index:number]: any}; the comparison in the error apparently only worked by virtue of the number index signature assignability rule that got removed. MonitorProps doesn't have an index signature, so it fails now.

  3. RyanCavanaugh commented on Mar 3, 2021

    @RyanCavanaugh
    Member

    Daniel Rosenwasser (@DanielRosenwasser) Wes and I spoke and recommend that we keep the assignability-target rule in place when the target has both string and numeric index signatures

  4. DanielRosenwasser commented on Mar 3, 2021

    @DanielRosenwasser
    Member

    Thanks for investigating! Let me look into it quickly.

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

Metadata

Metadata

Labels

InfrastructureIssue relates to TypeScript team infrastructureRescheduledThis issue was previously scheduled to an earlier milestone

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions