我正在编写一个 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 代码中。我尝试了一些解决方法,但它们没有用:
import type { DotNet } from "@microsoft/dotnet-js-interop"
的地方使用 (TS) 'DotNet' cannot be used as a value because it was imported using 'import type'.
会得到 DotNet
;///<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 代码?