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

问题描述

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...