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}`);