这种语法是为了兼容非ESModule的模块导入导出语法,目的是,想靠近ESmodule的标准语法-默认导入 import name form 'name'

    正常export= 用来写第三方模块的声明文件,第三方模块的声明文件一般是UMD模式,为了兼容所有的模块规范。然后 import xxx = require() 用来在应用文件里引用该文件

    如果你在tsconfig.json里配置module为非ESModule模式,即:commonjs/amd/umd。那么你在写应用模块时也可以使用 export= 来到出数据,这种模块编译后的代码里,不会添加 Object.defineProperty(exports, "__esModule", { value: true }); 。那么到入时候,你可是使用 import xxx require() 也可以使用 import name from 'name'

    如果你在tsconfig.json里配置module为ESModule模式,即:es2015/es2020/esnext。那么你在写应用模块时,默认到处是必须使用 export default xxx , 导入时,必须使用 esmodule的导入语法,不能使用import xxx = require()
    参考:
    Understanding esModuleInterop in tsconfig file
    Make auto-imports more likely to be valid for the file (including JS) & project settings
    Typescript - 声明文件