typescript - 当我指定类型时,打字稿显示“任何”
问题描述
让我们产生一个情境。有一个简单的抽象类定义棋盘游戏中的棋子,如国际象棋或跳棋。
export abstract class Piece<Tags, Move, Position = Vector2> {
public constructor(public position: Position, public tags = null) {}
public abstract getMoves(board: Board<Tags, Move, Position>): Move[]
}
Board
也是一个抽象类。
export abstract class Board<Tags, Move, Position = Vector2> {
public constructor(
public size: Position,
public pieces: Piece<Tags, Move, Position>[]
) {}
}
当我尝试扩展此类时,Typescript 说board
在getMoves
方法中是any
.
class Checker extends Piece<Tags, Move> {
getMoves(board /*← any */) {
return []
}
}
但为什么?我对泛型或抽象类有误解吗?
解决方案
推荐阅读
- javascript - 与混合应用程序一起使用时,Angularjs 摘要正在进行错误
- arrays - 我如何获得这种类型的 obj [{...}, {...}] 而不是这个 [] 数组?
- javascript - JavaScript - 旋转基于 SVG 的线的角度
- sockets - 当我在输出通道上调用 `close_out` 时,为什么会出现 Sys_error("Bad file descriptor")?
- python - 为特定环境创建 Visual Studio Code (VSCode) 终端
- javascript - 如何将循环的每次迭代包装在单独的 div 容器中
- dll - 自定义 Taghelper 在 viewcoponent 的查看页面中不起作用
- c# - 如何在视图 #1 中按下按钮以更改视图 #2 中的标签(Xamarin iOS)
- c++ - Coursera 自动评分器给了我未知信号 11
- javascript - 如何点击非浏览器区域关闭JS生成的右键菜单?