有没有一种方法可以在TypeScript中强制使用确切的类型别名?

时间:2020-11-11 19:02:25

标签: typescript eslint static-analysis lint type-alias

我想在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    
}

0 个答案:

没有答案