Preventing non-branded types from being assigned to branded types in TypeScript

I'm aware branded types prevent assigning them to each other, but I noticed recently that strings can been seemingly assigned to branded types:
const Branded = Schema.NonEmptyString.pipe(Schema.brand('Brand'))
type Branded = typeof Branded.Type

type Svc = { fn: (branded: Branded) => void }

const fn = (branded: string /* Branded */) => {}

const svc = { fn } satisfies Svc

This passes the type-check. Is there a strict way to prevent the non-strict signature?
Was this page helpful?