Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Type definition for TilemapLayer.getTileAt is wrong

Đang mở Phù hợp với người mới
#7,396 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 2 ngày

@hkbughk đang làm issue này rồi.

Từ ngày 12/10/2026.

  • #7398 của @hkbughk — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
70/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
javascript, typescript
Lĩnh vực
game-dev

Hướng nghiên cứu

Vấn đề nằm ở kiểu trả về được khai báo của getTileAt() trên Phaser.Tilemaps.TilemapLayer. Kiểu này ghi Phaser.Tilemaps.Tile nhưng có thể trả về null khi tọa độ x/y nằm ngoài layer. Hãy tìm khai báo kiểu của phương thức đó và kiểm tra xem kiểu trả về có nên bao gồm null hay không. Công việc hoàn tất khi khai báo khớp với hành vi lúc chạy và đoạn mã tái hiện trong issue không còn biên dịch được nếu thiếu kiểm tra null.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Version

  • Phaser Version: 4.2.1
  • Operating system: Linux
  • Browser: not relevant

Description

When using a Phaser.Tilemaps.TilemapLayer object, it exposes the method getTileAt(). The return type of that method according to the type definition is Phaser.Tilemaps.Tile. However, it could also return null if the given x/y coordinates are not within layer bounds.

Example Test Code

getTileId(tx:number, ty:number, layer: Phaser.Tilemaps.TilemapLayer): number {
  return layer.getTileAt(tx, ty).index ?? 0
}

The typescript compiler will happily accept this code but passing in values for tx and ty that are outside the layer boundaries will cause Cannot read properties of null (reading 'index') at runtime.

If I put an optional chaining operator (?) there, I would get the error Unnecessary optional chain on a non-nullish value and only if I manually type coerce it into as Phaser.Tilemaps.Tile | null the compiler does not complain.

Additional Information

Ngôn ngữ chính
JavaScript
Star
40.5k
Fork
7.2k
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của phaserjs/phaser

Tất cả issue của phaserjs/phaser

Issue tương tự

Thêm issue về JavaScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.