TypeScript
Tipler paketle birlikte gelir; projenizi doğru girişi çözümleyecek şekilde yapılandırın.
ball2d, her iki giriş için de TypeScript bildirimlerini içerir. Ayrı bir @types paketine gerek yoktur.
Projenizi yapılandırın
Bir Node.js host'u için paket dışa aktarımlarını Node'un yaptığı şekilde çözümleyin:
{
"compilerOptions": {
"module": "NodeNext",
"moduleResolution": "NodeNext",
"target": "ES2022",
"lib": ["ES2022"],
"types": ["node"],
"strict": true
}
}ball2d/node bildirimleri DOM veya WebRTC tiplerine bağlı değildir, dolayısıyla lib ES2022'de kalabilir ve skipLibCheck'e gerek yoktur.
Tipleri içe aktarın
Genel tipler, fonksiyonlarla birlikte dışa aktarılır:
import {
createRoom,
type HostPlayer,
type NodeRoom,
} from 'ball2d/node';
function welcome(room: NodeRoom, player: HostPlayer) {
return room.sendAnnouncement(
`Welcome, ${player.name}`,
player.id,
null,
'bold',
0,
);
}MatchState gibi bazı tipler adlarıyla dışa aktarılmaz. Onlara, onları döndüren değerler üzerinden ulaşın:
type MatchState = ReturnType<NodeRoom['getState']>;Tipler referansı her genel tipi ve nereden içe aktarılacağını listeler.
Geri çağırmalar ve this
Oda geri çağırmaları, oda üzerinde düz özelliklerdir. Her biri this olarak odayla çalışır, ancak room'u kapsayan ok fonksiyonları daha açıktır ve tiplerini korur:
room.onPlayerJoin = (player) => {
void room.setPlayerTeam(player.id, 1);
};