找不到名称“ IProp”。带有TS 3.3.3命名空间的VS Code中的ts(2304)

时间:2019-03-23 08:04:49

标签: typescript ecmascript-6 visual-studio-code namespaces

我试图在d.ts文件中创建一个命名空间接口,以便在使用相同命名空间的其他文件中使用,但是我的IDE在消息中标记了新文件中的接口:Cannot find name 'IProps'. ts(2304)

我在全球安装了Typescript 3.3.333333。我的VScode IDE状态栏显示Typescript 3.3.3。

/*
    t.d.ts
*/
import {Map} from 'immutable';
declare namespace Configs {
    export type Power = {
        horse: number,
        torque?: number
    }
    export interface IProps {
        displacement: number,
        options?: Map<string, any>,
        power: Power
    }
}

/*
    index.ts
*/
/// <reference path="./t.d.ts" />
import {Map} from 'immutable';
declare namespace Configs {
    export let props: IProps = { // Error - IDE here flags IProps
        displacement: 3.2,
        options: Map(),
        power: {
            horse: 560
        }
    }
}

1 个答案:

答案 0 :(得分:0)

在打字稿文档中出现“模块和命名空间”页面后,事实证明,此用法不需要​​关键字“ declare”。我从文件中删除了它,命名空间属性变得可用。 es6导出/导入或三斜杠引用都不需要正确地发出和使用那些属性。我还将“ isolateModules”标志重置为其默认值,以允许正确编译跨文件名称空间。