2017-04-04 1 views
1

J'ai un module Node.js qui ressemble à ceci:utilisation Tapuscrit pour l'application de l'API

module.exports = function(data){ 

    return { 

     limit: 4, 
     values: {} 

    } 


}; 

En utilisant tapuscrit, qui pourrait ressembler à:

interface ISomethingA { 
    values: Object, 
    limit?: number 
} 

export = function(data: ISomethingB){ 

    return { 

     limit: 4, 
     values: {} 

    } as ISomethingA; 


}; 

Ces modules doivent adhérer à un certaines API - l'objet renvoyé par la fonction nécessite à la fois des "valeurs" et des propriétés "limites".

Quelles sont les constructions TypeScript que je peux utiliser ici pour donner aux utilisateurs des commentaires afin qu'ils sachent qu'ils adhèrent à l'API?

La syntaxe "as" jusqu'à présent n'a pas fonctionné pour moi comme je l'aurais prévu. Je cherche un moyen de définir le type de l'objet renvoyé par la fonction.

Répondre

3

Indiquez le type de retour dans la déclaration de fonction:

export = function(data: ISomethingB): ISomethingA { 
    return { 
     limit: 4, 
     values: {} 
    }; 
}; 
+0

ah oui, merci, je aime vraiment l'idée du « comme » la notation, mais je ne vois pas les cas de bonne utilisation pour elle –

+0

La 'comme 'la notation indique au compilateur que" hé, je sais que vous pensez que cet objet est de type X, mais je veux que vous le traitiez comme le type Y ". C'est pourquoi vous pouvez utiliser "comme" à cette fin. – unional