【发布时间】:2019-12-03 17:09:07
【问题描述】:
您好,我在理解 Typescript 中的命名空间时遇到了一些问题... 这有什么区别:
export class FileBrowser {
...
attached() {
let elem = $("#file-manager");
elem.dxFileManager({
name: "fileManager",
fileProvider: new DevExpress.fileProvider.RemoteFileProvider({
})
});
}
}
还有这个:
import RemoteFileProvider from 'devextreme/ui/file_manager/file_provider/remote';
export class FileBrowser {
...
attached() {
let elem = $("#file-manager");
elem.dxFileManager({
name: "fileManager",
fileProvider: new RemoteFileProvider({
})
});
}
}
所以在第一个(编译但不工作!)我用完全限定的命名空间名称指定RemoteFileProvider,而不导入它。在第二个(有效)中,我使用 import 然后引用 RemoteFileProvider 而没有完全限定它。
第一个代码确实编译没有问题,但在运行时抛出:
Uncaught (in promise) TypeError: Cannot read property 'RemoteFileProvider' of undefined
虽然第二个完美无缺。
更新 声明是:
declare module DevExpress {...}
declare module DevExpress.fileProvider {
...
export class RemoteFileProvider extends FileProvider {
...
}
}
【问题讨论】:
标签: typescript module namespaces