TypeScript中如何导入同一文件内的同名导出接口?
如何导入同名的TypeScript接口而非常量?
遇到这种同一文件导出同名类型和值的情况,TypeScript提供了专门的语法来解决这个问题,不用修改原文件也能精准导入你需要的接口:
使用
import type导入类型
TypeScript的import type语法是专门用来导入类型实体(包括接口、类型别名等)的,它会忽略文件中的值导出(比如你的那个Prisma常量函数)。直接这样写就能导入接口:import type { Prisma } from './myFile';这样导入的
Prisma就是你需要的接口类型,不会和导出的常量混淆。同时导入接口和常量时用别名区分
如果你的代码同时需要用到这个接口和那个常量函数,可以给它们分别设置别名,避免命名冲突:// 导入Prisma接口并命名为PrismaInterface import type { Prisma as PrismaInterface } from './myFile'; // 导入Prisma常量并命名为PrismaClient import { Prisma as PrismaClient } from './myFile'; // 使用示例 const client: PrismaInterface = PrismaClient();
为什么你之前的默认导入会拿到常量?因为在TypeScript中,值(比如函数、对象)的导出优先级在默认导入时会覆盖类型,而import type明确告诉编译器你要导入的是类型,不会涉及运行时的值,完美解决这个同名冲突问题。
内容的提问来源于stack exchange,提问作者MorayM
相关产品推荐
相关产品推荐

