编辑代码

interface UserIdBrand {
  _brand: 'UserId';
}

interface OrderIdBrand {
  _brand: 'OrderId';
}

type UserId = string & UserIdBrand;
type OrderId = string & OrderIdBrand;

function createUserId(id: string): UserId {
  return id as UserId;
}

function createOrderId(id: string): OrderId {
  return id as OrderId;
}

const userId = createUserId('user123');
const orderId = createOrderId('order456');

// 这将导致编译时错误
// const invalidId: UserId = orderId; // 错误:Type 'OrderId' is not assignable to type 'UserId'
console.log(`User ID: ${userId}`);
console.log(`Order ID: ${orderId}`);