تایپاسکریپت - نمیتوان از نوعهای خارجی در فایل 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
}
مطالعه بیشتر در مورد ماژولهای تایپاسکریپت
