如何从文件中导入一些函数,但不使用具有相同名称但允许树抖动的变量填充文件命名空间



我试图用一种可树摇的方式编写导入,但我有一些函数的名称与其他文件中的名称相同。有没有一种方法可以在不引起命名冲突的情况下将所有这些函数导入同一个文件?

下面是一个通用示例:

// Car.ts
export function doSomething () { /* doSomething logic */ }
export function doSomethingElse () { /* doSomethingElse logic */ }
export function doA3rdThing () { /* doA3rdThing logic */ }
// User.ts
export function doSomething () { /* doSomething logic */ }
export function doSomethingElse () { /* doSomethingElse logic */ }
export function doA3rdThing () { /* doA3rdThing logic */ }
// index.ts
import { doSomething, doSomethingElse, doA3rdThing } from './Car'
import { doSomething, doSomethingElse, doA3rdThing } from './User'
// error: Duplicate identifier 'doSomething'.
// error: Duplicate identifier 'doSomethingElse'.
// error: Duplicate identifier 'doA3rdThing'.

像这样的东西会很棒:

import { doSomething, doSomethingElse, doA3rdThing } as Car from './Car'
import { doSomething, doSomethingElse, doA3rdThing } as User from './User'
Car.doSomething() 
User.doSomething()
// no longer duplicate identifiers and could be tree shakeable

试试这个:

import { doSomething as carDoSomething, doSomethingElse as carDoSomethingElse } from './Car'
import { doSomething as userDoSomething, doSomethingElse as userDoSomethingElse } from './User'

最新更新