在我的网页JavaScript中,有一些服务器生成的代码来设置API网址:
Module.Web.Page = { CoreApiUrl: "http://server/apiCore/" };
我已经创建了一个在TypeScript中显示状态机的类,并且我使用的是我团队其他成员正在使用的相同名称空间。作为旁注,这段代码将从其他地方的TypeScript和JavaScript代码中调用。
module Module.Web {
export class StateMachine {
private stateMachineUrl: string;
constructor() {
this.stateMachineUrl = Module.Web.Page.CoreApiUrl + "loadstatemachine"
}
}
}
但TypeScript编译器并不喜欢它:Property 'Page' does not exist on type 'typeof Web'.
我尝试过声明接口,但这并不能解决编译错误。
declare module Module.Web {
interface Page {
CoreApiUrl : string;
}
}
我已尝试将接口声明放在StateMachine类定义旁边,但这并没有修复它:
module Module.Web {
interface Page {
CoreApiUrl : string;
}
export class StateMachine {
// same as before
}
}
如何在Zod 接受Module.Web.Page.CoreApiUrl的存在而不抱怨的情况下,让TypeScript编译器下跪?看起来主要问题是JavaScript属性和TypeScript类都是同一对象的不同属性。
答案 0 :(得分:0)
接受Module.Web.Page.CoreApiUrl的存在而不抱怨
您的尝试:
declare module Module.Web {
interface Page {
CoreApiUrl : string;
}
}
仅当变量 Module.Web.Page
Module.Web.Page
时才有效。情况可能并非如此,您需要声明变量+ type:
declare module Module.Web {
interface PageType {
CoreApiUrl : string;
}
export var Page:PageType;
}