تایپاسکریپت - نمیتوان از نوعهای خارجی در فایل d.ts خود استفاده کرد


میخواهم همهی اینترفیسهای TS خود را در یک فایل d.ts تعریف کنم، مانند این:

interface Iface1 {
   testMethod(): Observable<string>;
}

با این حال، هنگامی که سعی میکنم از نوع خارجی استفاده کنم (در اینجا یک 'Observable' از rxjs است)، کامپایلر نمیتواند تشخیص دهد که 'Observable' چیست.

اضافه کردن خط:

/// <reference path="../node_modules/rxjs/observable.d.ts" />

رفتن به بالای فایل به نظر نمیرسد که اصلاً کمکی کند.

من کجا اشتباه میکنم؟

پاسخ شماره ۱

شما باید نوع Observable را در فایل interfaces.d.ts خود وارد کنید:

///<reference path="../node_modules/rxjs/observable.d.ts" />

import { Observable } from "rxjs/Observable";

دریافت Cannot find module 'rxjs/Observable'? مطمئن شوید که tsconfig.json شما دارای moduleResolution تنظیم شده به "node" است:

{
  "compilerOptions": {
    "moduleResolution": "node"
  }
}

در اینجا یک مثال از نحوه وارد کردن رابط آورده شده است:

رابطهای من.ts

///<reference path="../node_modules/rxjs/observable.d.ts" />

import { Observable } from "rxjs/Observable";

export interface IFoo {
    bar: Observable<number>;
}

App.ts

import { IFoo } from "./MyInterfaces"

var myVar : IFoo = {
    bar: null
}

مطالعه بیشتر در مورد ماژولهای تایپاسکریپت