我有一组打字稿文件,它们被编译成一个*.d.ts
文件,但它一直对我出错:
systems.debug.d.ts(280,41): error TS2094: The property 'Models' does not exist on value of type 'Systems'.
声明如下所示:
declare module Systems.Services.Stuff {
class DefaultHubService {
public Send(entry: Systems.Models.IEntry, successCallback: Function, failureCallback: Function): void;
}
}
这发生在第 280 行(systems.debug.d.ts)
,它正在努力参考的是:
declare module Systems.Models {
interface IEntry {
Version: string;
Content: KnockoutObservableString;
DateCreated: KnockoutObservableDate;
CreatorAccountId: KnockoutObservableString;
}
}
这是第 239 行(systems.debug.d.ts)
,所以我觉得很奇怪,不知道如何解决这个问题。由于接口包含在服务之前,据我所知,它应该可以工作,除非 Typescript 有一些怪癖。任何人都可以阐明错误吗?
== 编辑 ==
只需提供一些额外的信息,以帮助诊断问题......
实际的实现如下所示:
// Systems/Services/Stuff/default-hub-service.ts
module Systems.Services.Stuff {
export class DefaultHubService {
public Send(entry: Models.IEntry, successCallback: Function, failureCallback: Function): void
{
// Do something here
}
}
}
// Systems/Models/ientry.ts
module Systems.Models {
export interface IEntry {
Version: string;
Content: KnockoutObservableString;
DateCreated: KnockoutObservableDate;
CreatorAccountId: KnockoutObservableString;
}
}
单个文件中没有引用,因为我有一个根级引用文件,其中包含要使用的所有外部引用,并且由于它首先包含在编译参数中,因此它提供了所有外部依赖项(即 knockout.d.ts、jquery. d.ts 等)。
我正在使用 Typescript 0.9.0.1,并通过直接从我的构建脚本调用 tsc.exe 进行编译。最后创建的 javascript 输出文件没有错误,所以我有一个systems.debug.js
可以正常编译的文件,但是使用声明标志它只有 d.ts 文件会引发错误。