microsoft / microsoft/TypeScript

`typeof class`

Ouverte
#41,581 2 commentaires 43 réactions 2 personnes assignées Voir sur GitHub

@ahejlsberg y travaille déjà.

Depuis le 18/11/2020.

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

Description

@ahejlsberg has had a few experiments to try to make it easier to describe the type of a class. Specifically:

  • avoiding the awkward static/instance pattern that users need to write on anonymous object types/interface types

    var Thing: {
      new () => {
        instanceField: number;
      }
      staticField: string;
    }
    
  • allowing users to describe types with class-specific characteristics (e.g. abstract)

The idea is to allow typeof to be followed by a class expression.

var Thing: typeof class Thing {
  static staticField: string;

  instanceField: number;
  constructor() {}
}

There are definitely some subtleties here. For example, handling loops and whether this syntax is allowed in JSDoc with a TypeScript-annotated class:

/** @type { typeof class C<T> { x: T } } */
//                        ^^^    ^^^
// TypeScript type parameters and annotations
// Are these allowed?
var Thing;

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.

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

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