You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何`import ManagerRoleEnum = ManagerBean.ManagerRoleEnum`是合法TypeScript代码?

为什么import ManagerRoleEnum = ManagerBean.ManagerRoleEnum是合法的TypeScript代码?

这是TypeScript专为命名空间/模块成员设计的别名导入语法,属于TS自身对ES模块语法的扩展,完全符合TS的语法规范:

  • 首先,ManagerBean是你通过Swagger生成的导出命名空间,只要它已经通过模块导入(比如import * as ManagerBean from './api.ts',IDE可能自动帮你处理了这一步的隐式导入),就可以用import <别名> = <命名空间.成员>的语法,给命名空间内部的枚举创建一个模块级的别名,本质是简化长路径的引用。
  • 这种语法是TS早期为兼容AMD/CommonJS模块系统和命名空间机制保留的特性,虽然现在更推荐使用ES标准的解构导入(比如import { ManagerBean } from './api.ts'; const { ManagerRoleEnum } = ManagerBean),但TS至今仍支持这个语法。
如何用ESLint禁止这种自动导入行为?

你可以通过@typescript-eslint插件的no-import-equals规则来禁止这种TS特有的import =语法,步骤如下:

  1. 确保项目已安装@typescript-eslint/eslint-plugin和@typescript-eslint/parser依赖
  2. 在ESLint配置文件(比如.eslintrc.js)中添加规则:
module.exports = {
  parser: '@typescript-eslint/parser',
  plugins: ['@typescript-eslint'],
  rules: {
    '@typescript-eslint/no-import-equals': 'error'
  }
}

启用这个规则后,ESLint会把import X = Y.Z这类代码标记为错误,IDE也就不会再自动生成这种导入方式了。

内容的提问来源于stack exchange,提问作者Artur Zybin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 10:36:05