[英]typescript: error TS1056 and TS2304 Cannot find name Iterable - SignalR .NET Core 2.2
[英].net core 2.2 with typescript and signalr
我想擁有帶有TypeScript和Signalr的ASP.NET core 2.2,但我不知道如何正確設置項目。
我已經使用npm install @aspnet/signalr
將@ aspnet / signalr npm軟件包npm install @aspnet/signalr
到項目根目錄。 所以我的項目根目錄如下:
Controllers/
Models/
node_modules/
Properties/
TypeScript/
Views/
wwwroot/
appsettings.Development.json
appsettings.json
MyProject.csproj
package-lock.json
package.json
Program.cs
Startup.cs
tsconfig.json
擁有此TypeScript / home.ts文件:
import * as signalR from "@aspnet/signalr";
const connection = new signalR.HubConnectionBuilder().withUrl("/gameHub").build();
connection.on("ReceiveMessage", function (user, color) {
console.log("color " + color + "; user " + user);
let canvas = <HTMLCanvasElement>document.getElementById(user).getElementsByClassName("board")[0];
let context = canvas.getContext("2d");
context.fillStyle = color;
context.fillRect(0, 0, 200, 200);
});
最后是我的tsconfig.json文件:
{
"compileOnSave": true,
"compilerOptions": {
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": true,
"target": "es2017",
"outDir": "wwwroot/js"
},
"exclude": [
"node_modules",
"wwwroot"
]
}
當我在tsconfig.json中使用"target": "es2017",
,VS無法找到@ aspnet / signalr並且我無法運行項目。 當我將其切換為"target": "es5",
,VS可以找到@ aspnet / signalr,但是它會生成帶有以下行的Object.defineProperty(exports, "__esModule", { value: true });
: Object.defineProperty(exports, "__esModule", { value: true });
並在瀏覽器中引發錯誤。
我猜我的tsconfig.json沒有正確設置。 另外,如果可能的話,我想在瀏覽器中使用ES6模塊( https://www.sitepoint.com/using-es-modules/ )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.