1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
discriminateWithMissingProperty.ts(12,5): error TS2345: Argument of type '{ mode: "numeric"; data: Uint8Array; }' is not assignable to parameter of type 'Arg'.
Types of property 'data' are incompatible.
Type 'Uint8Array' is not assignable to type 'number'.
==== discriminateWithMissingProperty.ts (1 errors) ====
type Arg = {
mode: "numeric",
data: number,
} | {
mode: "alphabetic",
data: string,
} | {
data: string | Uint8Array;
}
declare function foo(arg: Arg): void;
foo({ mode: "numeric", data: new Uint8Array([30]) }); // Should error
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2345: Argument of type '{ mode: "numeric"; data: Uint8Array; }' is not assignable to parameter of type 'Arg'.
!!! error TS2345: Types of property 'data' are incompatible.
!!! error TS2345: Type 'Uint8Array' is not assignable to type 'number'.
|