TypeScript中不同文件间交叉引入类型问题

在TS项目中,我一般会把类型定义和对应组件代码写在一个文件中,然后export,但是文件一多,就发现不同文件之间的类型互相import来import去,这种交叉引入类型的问题是正常的吗?

阅读 3.4k
2 个回答

可以新建一个types文件夹专门用于存放类型,在tsconfig.json的comilerOptionsd选项中,typeRoots添加你的本地类型,从而全局引入类型,避免到处互相引入的问题,配置可能如下所示

{
    "compilerOptions": {
        "typeRoots": ["./node\_modules/@types", "src/types/"],
    }
}

不好说是不是有问题的。只举个例子说一下目前我的使用方式,主要使用namespace来整理代码,大部分类型都是global可访问的状态。

// ./types/user.d.ts
declare namespace User {
    type UserId = number;
    interface BasicInfo {
        id: UserId;
        name: string;
    }
}

// ./types/clinic.d.ts
declare namespace Clinic {
    interface CustomerInfo {
        id: number;
        name: string;
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题