gpt4 book ai didi

angular - "Not a constructor"库和 Angular 错误

转载 作者:行者123 更新时间:2023-12-04 01:00:30 24 4
gpt4 key购买 nike

我正在尝试为国际象棋游戏构建一个 Angular 应用程序。我想使用 chess.js 库 https://github.com/jhlywa/chess.js/blob/master/README.md使用 https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/chess.js 中声明的类型
但是每当我运行应用程序时,运行时都会出现错误。

我已经通过 npm 安装了软件包

npm install --save chess.js @types/chess.js

在使用该库的服务中,我有以下相关代码:
import {Chess, ChessInstance} from "chess.js"

@Injectable({
providedIn: 'root'
})
export class GameService {

private chess: ChessInstance = new Chess()

constructor() {}
...
}


我得到的错误是:
core.js:15724 ERROR Error: Uncaught (in promise): TypeError: chess_js__WEBPACK_IMPORTED_MODULE_4__.Chess is not a constructor
TypeError: chess_js__WEBPACK_IMPORTED_MODULE_4__.Chess is not a constructor

我也尝试将其导入为:
import * as Chessjs from "chess.js"

@Injectable({
providedIn: 'root'
})
export class GameService {

private chess: Chessjs.ChessInstance = new Chessjs.Chess()

constructor() {}
...
}


没有成功。

我也尝试过从我的 app.module.ts 中声明 chess.js,但这似乎是导入非模块脚本的错误方式

任何帮助将不胜感激

最佳答案

我无法让它与打字一起工作,因为 Chess未定义为 class但作为 const
所以首先卸载类型:

npm uninstall --save @types/chess.js

然后像这样使用它。
import * as Chess from "chess.js chess:any = new Chess();
唯一的问题是你不会有类型(测试和工作)

更新

基于此 answer进行修改,因此您的编辑器可以识别类型,您可以使用已安装的类型
import { ChessInstance } from 'chess.js'

ChessReq:any = require('chess.js');
Chess:ChessInstance = new this.ChessReq();

然后使用 Chess.header()例如编辑器上出现的类型

(也经过测试和工作)

关于angular - "Not a constructor"库和 Angular 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58598457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com