This is kind of a dup of #2074, except it's not. That issue says that in the code below FooBar type would behave as Foo, however it produces an error. The reason for the error is not clear since the value satisfies both types.
type Foo = {
type: string,
};
type Bar = {
type: 'specific',
};
type FooBar = Foo & Bar;
({type: 'specific'} : FooBar); // error