2017-08-15 3 views
0

Je souhaite limiter l'un des paramètres constructeurs de type nombre pour affecter uniquement les valeurs d'une certaine plage. Je sais comment archiver l'effet similaire avec setter et l'instruction conditionnelle. Je me demandais s'il pourrait y avoir un moyen de créer un type personnalisé, qui est la gamme de nombres, mais de nos jours il n'y en a pas. Alors, conseillez-moi, est-il impossible de l'archiver par simple manœuvre?tapuscrit - paramètres conditionnels

Merci d'avance pour vos réponses! Crova

Répondre

2

Si cette plage de nombres est relativement faible, la liste juste:

type Range1 = 1|2|3|4|5; 
var r1: Range1 = 4; 

Si cela signifie quelque chose, vous pouvez utiliser un ENUM:

const enum Range2 { FirstKind1 = 1, SecondKind2 = 2, ThirdKind = 3 } 
var r2a: Range2 = Range2.ThirdKind; 
var r2b: Range2 = 3; 

Sinon, vous êtes hors de chance aujourd'hui.


Personnellement, je voudrais être en mesure de déclarer un type int, mais même si ce n'est pas encore supporté, je reste annote avec diligence mes types avec un alias, même si elle ne me donne pas tout à fait une vérification statique aujourd'hui, mais rend l'intention un peu plus lisible dans le code:

type int = number; 

let transactionNo: int; 
+0

Comme je le soupçonnais ...:/Mais votre concept avec les types de nombre severeal est assez gentil pour moi :) – Crova