如何在 Blazor 组件中实现 TypeScript 隔离?
How to implement TypeScript Isolation in Blazor Components?
我知道如何实施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,没有"export":
"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中的module设置为ES2015或ESNext
将compilerOptions
中的module
设置为ES2015
或ESNext
– Aleksey L.
我知道如何实施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,没有"export":
"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中的module设置为ES2015或ESNext
将compilerOptions
中的module
设置为ES2015
或ESNext
– Aleksey L.