【问题标题】:Typescript: Import namespace when namespace and class have the same name in a library fileTypescript:当名称空间和类在库文件中具有相同名称时导入名称空间
【发布时间】:2019-12-17 15:03:05
【问题描述】:

我在从声明命名空间和同名类的文件中导入命名空间时遇到问题。我可以访问类,但不能访问命名空间。

docs 开始,我认为从导出合并命名空间和类的库中导入将为您提供两个声明的属性。但是,我只从类中获取属性。

命名空间足够灵活,也可以与其他类型的 声明。为此,命名空间声明必须遵循 声明它将与之合并。结果声明有 两种声明类型的属性。 TypeScript 使用此功能 对 JavaScript 中的一些模式以及其他模式进行建模 编程语言。

这是我的场景,

库文件:

class GoldenLayout {
}

namespace GoldenLayout {
    export interface Config {
    }
}

在我的项目中,我正在尝试使用Config 接口。我正在尝试以这种方式使用它,

import * as GoldenLayout from 'golden-layout';

const INITIAL_LAYOUT = GoldenLayout.Config = {
};

但是,我得到一个错误

Property 'Config' does not exist on type 'typeof GoldenLayout'.

我可以访问 GolderLayour 类中的属性和方法,但我不知道如何访问命名空间。

作为参考,我正在尝试在我的 Angular 8 应用程序中使用这个 library

【问题讨论】:

    标签: javascript angular typescript angular8 golden-layout


    【解决方案1】:

    我认为您的问题是您没有定义 Config 而是双重分配。试试这个:

    const INITIAL_LAYOUT: GoldenLayout.Config = { };
    

    【讨论】:

    • 我多么愚蠢,竟然没有注意到这一点。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2016-01-04
    • 2014-10-28
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 2012-02-27
    相关资源
    最近更新 更多