Javascript 如何在TypeScript中导出带有静态嵌套类的类?
为了创建嵌套的静态类,我遵循 但是,我也需要导出类相册。当我这样做的时候Javascript 如何在TypeScript中导出带有静态嵌套类的类?,javascript,typescript,Javascript,Typescript,为了创建嵌套的静态类,我遵循 但是,我也需要导出类相册。当我这样做的时候 export class Album { label: Album.AlbumLabel; } namespace Album { export class AlbumLabel { } } 合并声明“相册”中的个人声明必须全部导出或全部本地。如何修复它?选项一是按照编译器的指示执行,并同时导出: export class Album { label: Album.AlbumLabel; } e
export class Album {
label: Album.AlbumLabel;
}
namespace Album {
export class AlbumLabel { }
}
合并声明“相册”中的个人声明必须全部导出或全部本地。如何修复它?选项一是按照编译器的指示执行,并同时导出:
export class Album {
label: Album.AlbumLabel;
}
export namespace Album {
export class AlbumLabel { }
}
选项二是一个摆振变量,但您面临命名难题:
class Album {
label: Album.AlbumLabel;
}
namespace Album {
export class AlbumLabel { }
}
export const NameMe = Album;
第一个选择是更好的选择(我认为)
进口
如果要直接导入AlbumLabel
,请不要嵌套它。它已经在模块中,因此让模块导出相册
和相册标签
如果保留嵌套,则必须使用以下任一选项:
import { Album } from './component.js';
const a = new Album.AlbumLabel();
或引入本地名称:
import { Album } from './component.js';
const AlbumLabel = Album.AlbumLabel;
const a = new AlbumLabel();
下面的示例允许从“/album”导入{AlbumLabel}代码>
export class Album {
label: AlbumLabel;
}
export class AlbumLabel { }
导出命名空间相册{…}
?@jcalz您的意思是,我不需要做导出类相册
,我只需要做导出命名空间相册
?导出两者。这就是“声明必须全部导出或全部本地”的意思。要么两个都导出,要么都不导出。答案太长,无法发表评论,因此我更新了答案。非常感谢您的解释。
export class Album {
label: AlbumLabel;
}
export class AlbumLabel { }