Не удается найти имя «IProp».TS (2304) в VS Code с пространством имен TS 3.3.3 - PullRequest
0 голосов
/ 23 марта 2019

Я пытаюсь создать интерфейс пространства имен в файле 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 голосов
/ 26 марта 2019

После появления на странице «Модули и пространства имен» в документах по машинописи выясняется, что ключевое слово «объявлять» для этого использования не требовалось.Я удалил его из файлов, и свойства пространства имен стали доступны.Ни экспорт / импорт es6, ни ссылки на тройные слэши не требовались для правильного создания и использования этих свойств.Я также сбросил флаг «isolateModules» на значения по умолчанию, чтобы обеспечить правильную компиляцию пространств имен между файлами.

...