我想在TypeScript中对命名/别名类型强制执行精确的类型匹配,以使编译器捕获类似于下面test()
的最后一行的错误。
(类似于Go如何允许对用户定义的标量类型进行类型检查)
这可能吗?
例如,有人知道是否以及如何为ESLint编写自定义规则来实现这一目标?
type AdminId = number
type UserId = number
function getAdminName(adminId: AdminId): string {
return 'an admin name'
}
function getUserName(userId: UserId): string {
return 'a user name'
}
function test() {
let userId: UserId = 1
let adminId: AdminId = 1
getUserName(userId)
getAdminName(userId) // I would like the compiler or linter to catch this as a type error
}