Skip to content

unexpected behaviour when use Omit with Insection Types#39359

@rust404

Description

@rust404

TypeScript Version: 3.9.2

Search Terms:
omit, insection types

Code

interfaceUser{type: 'user';name: string;age: number;occupation: string;}interfaceAdmin{type: 'admin';name: string;age: number;role: string;}typePowerUser=Omit<User&Admin,'type'>&{type: 'powerUser'};letp: PowerUser={type: 'powerUser',name: 'hello',age: 123,occupation: '123',role: '123'}console.log(p)

Expected behavior:
no error

Actual behavior:

test.ts:21:3 - error TS2322: Type 'string' is not assignable to type 'never'. 21 name: 'hello', ~~~~ test.ts:22:3 - error TS2322: Type 'number' is not assignable to type 'never'. 22 age: 123, ~~~ test.ts:23:3 - error TS2322: Type 'string' is not assignable to type 'never'. 23 occupation: '123', ~~~~~~~~~~ test.ts:24:3 - error TS2322: Type 'string' is not assignable to type 'never'. 24 role: '123' ~~~~ 

Playground Link:
https://www.typescriptlang.org/play/?ssl=1&ssc=1&pln=26&pc=15#code/LAKAlgdgLgpgTgMwIYGMYAICqBne6Deo66UAngA4wBc6A5AK65y0DcR6ESAttetlHEgBzNiGJIhvCPS4AjeKOIB7FCnrkkUMEog1+giCNABfUKEixEqDAEEAJl0gF2ZSjVpIHkVu0489AsKK6BJSMvJwwXBKADa8+kEmZiCuGAAKSgDu8Dh4ALzoAPKOUAA8uXDoAGTo9o4QADR0qbQAfNXOYiQUvLTkWTlMtCaicVDo5DQZ2XAV6AWEXanu-TMVtA2+3L0AFjAxMUob7KE0AIwATADMm10qahpaOu6XV8dd0XEv18MgpiAoHTYWIwAB0hyEAApyABKIA
Related Issues:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Working as IntendedThe behavior described is the intended behavior; this is not a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions