Consider following TS type aliases and code:
type VehicleId = string;
type HouseId = string;
function doSomethingWithVehicle(id: VehicleId) {}
const houseId: HouseId = "abc";
doSomethingWithVehicle(houseId);
TS doesn't throw any build error because string is assignable to another string. But I'd want to detect such assignment and throw a build error. What is the most TS-idiomatic way to achieve this? Ideally without any more complex types (e.g. a value class), because such strings are coming from JSON API and they are used directly without any transformation.