Tout d'abord, Typescript ne prend en charge getet la setsyntaxe que pour cibler Ecmascript 5. Pour ce faire, vous devez appeler le compilateur avec
tsc --target ES5
Les interfaces ne prennent pas en charge les getters et les setters. Pour obtenir votre code à compiler, vous devrez le changer en
interface I { 
    getName():string;
}
class C implements I { 
    getName():string {
          return null;
    }   
}
Ce que dactylographié prend en charge, c'est une syntaxe spéciale pour les champs dans les constructeurs. Dans votre cas, vous pourriez avoir
interface I {
    getName():string;
}
class C implements I {
    constructor(public name: string) {
    }
    getName():string {
        return name;
    }
}
Remarquez que la classe Cne spécifie pas le champ name. Il est en fait déclaré en utilisant du sucre syntaxique public name: stringdans le constructeur.
Comme le souligne Sohnee, l'interface est en fait censée cacher tous les détails d'implémentation. Dans mon exemple, j'ai choisi l'interface pour exiger une méthode getter de style java. Cependant, vous pouvez également créer une propriété, puis laisser la classe décider comment implémenter l'interface.
     
              
=>pour définir des méthodes de classe comme celle-ci:name = (a: string) => this._name;mais dans le JS de sortie, elle sera définie dans la fonction de classe plutôt que d'étendre son objet prototype.