在我的页面的JavaScript中,有一些服务器生成的代码来设置API URL:
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类都是同一对象的不同属性 .
1 回答
你的尝试:
仅当变量
Module.Web.Page
的类型为Module.Web.Page
时才有效 . 这可能不是这种情况,您需要声明变量类型: