microsoft / microsoft/TypeScript

RTCStatsReport should inherit or extend from Map

Ouverte
#58,995 2 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Needs More Info
Langage dominant
Go
Étoiles
111k
Forks
14.4k
Merge moyen
1 j 19 h
PR mergées (30 j)
117

Description

⚙ Compilation target

ESNEXT

⚙ Library

No idea why this item is mandatory

Missing / Incorrect Definition

RTCStatsReport is defined as follows:

/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCStatsReport) */
interface RTCStatsReport {
    forEach(callbackfn: (value: any, key: string, parent: RTCStatsReport) => void, thisArg?: any): void;
}

As per documentation, RTCStatsReport is a Map-like object so it should include methods such as values(), entries() and members such as size. Note that it must NOT include delete(), clear() or set() since it's read-only (see doc links at the bottom).

However RTCStatsReport TypeScript definition only exposes forEach().

Sample Code
const pc = new RTCPeerConnection();

pc.createDataChannel('foo', { negotiated: true, id: 123, ordered: true });

const stats = await pc.getStats();

console.log('--- num stats:', stats.size);

for (const [id, stat] of stats) {
	console.log('--- stat:', stat);
	console.log('--- stats.get(id):', stats.get(id));
}

Produces:

--- num stats: 2
--- stat: {id: 'D37', timestamp: 1719306842612.802, type: 'data-channel', bytesReceived: 0, bytesSent: 0, …}
--- stats.get(id): {id: 'D37', timestamp: 1719306842612.802, type: 'data-channel', bytesReceived: 0, bytesSent: 0, …}
--- stat: {id: 'P', timestamp: 1719306842612.802, type: 'peer-connection', dataChannelsClosed: 0, dataChannelsOpened: 0}
--- stats.get(id): {id: 'P', timestamp: 1719306842612.802, type: 'peer-connection', dataChannelsClosed: 0, dataChannelsOpened: 0}
Documentation Link

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par l’interface RTCStatsReport présentée dans l’issue et comparez-la avec la documentation MDN liée sur l’API map-like. Confirmez les membres en lecture seule et le comportement d’itération représentés par l’exemple, en excluant delete(), clear() et set() ; le travail est considéré comme terminé lorsque la définition TypeScript expose correctement le comportement documenté.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
typescript
Domaine
web-dev
Type d'issue
Fonctionnalité
Difficulté
2/5
Temps estimé
1-3 heures
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.