TypeScript / ES6模块:是否可以在单个语句中导入和重新导出?

时间:2016-01-10 18:27:20

标签: typescript

这是我的情景。我正在导入一个TypeScript接口,为其提供本地名称,在本地使用它,并使用相同的本地名称重新导出它。为了实现这一点,我有一个import语句和一个export语句,它具有相同的本地名称和路径。所以我很想知道是否有可能以某种方式结合这些陈述。

// \app\models\FilterIdValue.ts
export interface FilterIdName {
    filterId: number;
    name: string;
}

// \app\components\FilterIdName.tsx
import { FilterIdName as FilterIdNameProps } from '../models/FilterIdValue' 
export { FilterIdName as FilterIdNameProps } from '../models/FilterIdValue'
// Can the import and export be combined somehow?

export interface FilterIdNameListProps {
    items: FilterIdNameProps[];
}

export default class FilterIdNameList extends React.Component<FilterIdNameListProps, any> {
    constructor(props: FilterIdNameListProps) {
        super(props);
    }
    render() {
        var items = this.props.items.map(item => (
                <FilterIdName filterId={item.filterId} name={item.name} />
        ));   
        return (<div>{items}</div>);
    }
}

// \app\components\FilterIdNameList.tsx
import FilterIdName, { FilterIdNameProps } from './FilterIdName'
//...

这样做的一个原因是在下游对象中使用单个import语句(预定义别名的本地名称,并在一个位置维护相对路径)。

从细读Exploring ES6开始,我认为这是不可能的。但我很好奇是否有另一种方法来阻止维护额外声明(别名和路径)。

1 个答案:

答案 0 :(得分:0)

没有。虽然还有其他方法可以实现同样的效果,但您总是需要两个语句。