Blazor JS 与 Typescript 互操作 - 正确的 DotNet 声明导入

问题描述 投票:0回答:0

我正在编写一个 Razor 类库,其中包含从 TypeScript 转译的 JavaScript 互操作。 TypeScript 中的某些代码将引用全局可用变量 DotNet,该变量在 Blazor 库初始化时包含在内。我能够在 DotNet 节点包(添加为 devDependency)中找到 @microsoft/dotnet-js-interop 模块声明,并且当我的 "moduleResolution": "node" 中设置了 tsconfig.json 时,TypeScript 能够找到导出。但是,如果我这样做了 import { DotNet } from "@microsoft/dotnet-js-interop",那么这个导入将保存在转译后的 JavaScript 代码中。我尝试了一些解决方法,但它们没有用:

  1. 在引用 import type { DotNet } from "@microsoft/dotnet-js-interop" 的地方使用 (TS) 'DotNet' cannot be used as a value because it was imported using 'import type'. 会得到 DotNet
  2. 在尝试 ///<reference types/path="@microsoft/dotnet-js-interop or node_modules/@microsoft/dotnet-js-interop/dist/Microsoft.JSInterpop.d.ts"> 或修改 tsconfig.json 值(例如 paths(带 "baseUrl"=".")或 typeRoots)时,我一生都无法获得任何结果。所有这些都会导致错误 (TS) Cannot find name 'DotNet'.

有没有什么方法可以正确导入 DotNet 模块声明,而不用不必要的导入污染转译的 JavaScript 代码?

typescript blazor tsconfig
© www.soinside.com 2019 - 2024. All rights reserved.