如何在Blazor组件中实现TypeScript隔离?

问题描述

我知道如何实现JavaScript isolation in Blazor components

// Use the module Syntax to export the function
export function sayHi(name) {
    alert(`hello ${name}!`);
}

private Task<IJSObjectReference> _module;
private Task<IJSObjectReference> Module => _module ??= JSRuntime.InvokeAsync<IJSObjectReference>("import","./js/demo.js").AsTask();

async Task Submit()
{
    var module = await Module;
    await module.InvokeVoidAsync("sayHi",name);
}

但是如何在Blazor组件中实现隔离的 TypeScript 连接,以调用 TypeScript 文件中定义的“ sayHi”函数

问题是,如果我从TypeScript模块中导出函数,如下所示:

export function sayHi(name) {
    alert(`hello ${name}!`);
}

然后将其编译为以下没有“导出”的javascript:

"use strict";
Object.defineProperty(exports,"__esModule",{ value: true });
exports.sayHi = void 0;
function sayHi(name) {
    alert("hello " + name + "!");
}
exports.sayHi = sayHi;
//# sourceMappingURL=say.js.map

这就是为什么我有这个问题。如何在Blazor组件中实现隔离的 TypeScript 连接,以调用 TypeScript 文件中定义的“ sayHi”函数


答案:将CompilerOptions中的模块设置为ES2015或ESNext

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)