تایپاسکریپت ادغام نامفضاها از فایلهای متعدد را انجام نمیدهد


من انواع را با typings وارد کردهام و نیاز دارم که برخی از آنها را با تعریفهای متد اضافی توسعه دهم. به عنوان مثال، من این فایل را برای Mocha دارم:

// /typings/globals/mocha/index.d.ts

declare namespace Mocha {

    interface IRunnable {
        title: string;
        fn: Function;
        async: boolean;
        sync: boolean;
        timedOut: boolean;
    }

    interface ITest extends IRunnable {
        parent: ISuite;
        pending: boolean;
        state: 'failed'|'passed'|undefined;

        fullTitle(): string;
    }
}

من نیاز دارم یک متد به IRunnable اضافه کنم و یک اورلود به ITestDefinition اضافه کنم. در این حالت، نوعدهی اشتباه است--متد وجود دارد اما در اعلان نوع نیست. بنابراین سعی کردم یک فایل جداگانه اضافه کنم

// /typings/global/custom-additions/index.d.ts

declare namespace Mocha {

    interface IRunnable {
        timeout(value:boolean):void;
    }

    interface ITestDefinition {
        (expectation: string, callback?: () => void): Mocha.ITest;
    }
}

این خود در custom-additions به من خطا میدهد:

custom-additions/index.d.ts(420,65): خطا TS2694: فضای نام '".../custom-additions/index".Mocha' عضوی صادر شده به نام 'ITest' ندارد.

و همچنین یک خطا هنگام تلاش برای ارجاع به متد اضافه شده timeout():

tests/runner.ts(65,31): خطا TS2339: ویژگی 'timeout' در نوع 'ITest' وجود ندارد.

در بالای custom-additions من سعی کردهام هر یک از موارد زیر را اضافه کنم:

    /// <reference types="Mocha" />

    import 'mocha';

    import * as Mocha from 'mocha';

با عدم حل خطای اول.

داخل کد فراخوانی، من تلاش کردهام که Mocha را هم از طریق وارد کردن

    import Mocha = require('mocha');

و

    import * as Mocha from 'mocha';

من همچنین اضافه کردهام

    import 'custom-additions';

بدون موفقیت.

من قدردان راهنماییها در مورد اینکه چه اشتباهی در تلاش برای ادغام این فضای نامها انجام میدهم، هستم. این تنها یک نمونه است--من مشکلات تقریباً مشابهی با دهها تعریف نوع دیگر دارم. بیشتر افزونههای سفارشی شامل شخصیسازیهای واقعی هستند، برخی دیگر اصلاحات نوع مانند موارد بالا هستند.