我最近重新配置了我的打字稿设置,现在我收到通过规则无命名空间引起的错误。
我目前对命名空间的设置如下:
导出某些内容的类:
namespace MyNamespace {
export class Foo {}
export class Bar {}
}
导入的类:
import MyNamespace from './my-namespace';
// access classes
MyNamespace.Foo;
MyNamespace.Bar;
我想用推荐的ES2015模块替换此设置(我不想简单地禁用该规则(。我该怎么做?理想情况下,我想保留我当前的导入语法,我不是特别喜欢语法import {Foo, Bar} from './my-namespace'
。
这是官方答案。
在您的示例中,您可以将命名空间替换为如下所示的模块:
- 删除命名空间语法:
//namespace MyNamespace { <-- remove this line
export class Foo {}
export class Bar {}
//} <-- remove this line
- 在需要类型的文件中,使用命名导入:
import * as MyNamespace from './my-namespace';
// access classes
MyNamespace.Foo;
MyNamespace.Bar;
如果要为导入设置命名空间,请使用导入语法* as ...
:
export class Foo {}
export class Bar {}
import * as MyNamespace from './my-namespace';
// access classes
MyNamespace.Foo;
MyNamespace.Bar;
如果你使用的是export
,你可以按照@cyr_x提到的去做sth。只是想指出使用export default
也可以使用命名空间。
export {default as YourCustomisedName} from '<your file path>'