是否有Blazor的blazor.web.js对应的公开TypeScript类型定义npm包?
Blazor SSR项目中TypeScript操作Blazor API的类型支持方案
目前没有官方发布的@types/Blazor.Web npm包或预打包的blazor.web.d.ts文件供直接使用。不过可以通过以下方式解决类型检查问题:
复用官方源码中的类型定义
直接从ASP.NET Core官方源码的相关文件中提取IBlazor接口的定义,在你的项目中创建一个自定义的.d.ts声明文件(比如blazor-global.d.ts),内容示例如下:interface IBlazor { navigateTo(url: string, forceLoad?: boolean, replaceHistoryEntry?: boolean): void; // 可根据需求添加其他需要用到的Blazor全局API } declare global { interface Window { Blazor: IBlazor; } }保存后TypeScript会自动识别该声明,你即可直接使用
window.Blazor.navigateTo(...)并获得完整的类型检查。按需扩展Window类型
如果仅需用到少数几个API,也可以在项目的类型声明文件中直接扩展Window接口,仅添加所需方法:declare global { interface Window { Blazor: { navigateTo: (url: string, forceLoad?: boolean, replaceHistoryEntry?: boolean) => void; }; } }
内容的提问来源于stack exchange,提问作者maloo
相关产品推荐
相关产品推荐

