Table des matières
Assurez-vous que la variable existe: variable-exists()
Type de valeur de vérification: type-of()
Unités pour confirmer les nombres: unit()
Trouver des valeurs dans la liste: index()
Assurez-vous que la carte a des clés: map-has-key()
Puis-je créer une fonction de validation personnalisée dans SASS?
Que se passe-t-il si la validation d'entrée échoue dans le mixin SASS ou la fonction?
Comment gérer les erreurs dans le mixin SASS et les fonctions?
Puis-je utiliser la fonction d'introspection SASS pour la validation d'entrée?
Quels sont les cas d'utilisation courants pour valider l'entrée dans le mixin SASS et les fonctions?
Puis-je tester si le mixin existe dans le SASS?
Comment utiliser la fonction unit() pour la validation d'entrée dans SASS?
Quelles sont les meilleures pratiques pour valider l'entrée dans le mixin SASS et les fonctions?
Maison interface Web tutoriel CSS Valider l'entrée dans les mixins et fonctions SASS

Valider l'entrée dans les mixins et fonctions SASS

Feb 23, 2025 am 10:02 AM

Validating Input in Sass Mixins and Functions

Points de base

  • La vérification des entrées dans le mixin SASS et les fonctions est essentielle, garantissant que le code entrant est du type de données et du format corrects, aidant à prévenir les erreurs et les bogues, et à rendre le code plus facile à déboguer et à maintenir.
  • SASS fournit certaines fonctions intégrées pour la validation des entrées, telles que type-of(), unit() et unitless(). Ces fonctions peuvent être utilisées pour vérifier le type et l'unité des données d'entrée, et une erreur sera lancée si l'entrée ne répond pas aux critères attendus.
  • Les fonctions de validation personnalisées peuvent être créées dans SASS pour des vérifications de validation plus complexes. Cela implique de définir une nouvelle fonction à l'aide de la directive @function et de renvoyer une valeur basée sur la vérification de vérification à l'aide de la directive @return.
  • Si la vérification d'entrée dans le mixin SASS ou la fonction échoue, une erreur est lancée et la compilation du code SASS est arrêtée. La directive @error peut être utilisée pour lancer un message d'erreur personnalisé, fournissant des informations détaillées sur la nature de l'erreur et comment corriger l'erreur.

Lors de l'écriture de SASS et de l'utilisation par d'autres, ils sont susceptibles de faire une erreur lors de l'utilisation de votre code. En fait, honnêtement, lorsque j'écris Sass et que je l'utilise quelques jours (ou même quelques heures plus tard), je fais des erreurs dans mon propre code. Vous pourriez aussi. Heureusement, SASS a de nombreuses fonctions qui peuvent nous aider à vérifier les développeurs d'entrée dans SASS que nous avons écrits.

Ces technologies sont particulièrement utiles pour les équipes qui partagent Sass Mixin ou maintiennent un kit de démarrage ou un ensemble de mixin et de fonctions. Les développeurs ont deux options lors de l'utilisation de bibliothèques SASS partagées: ils peuvent s'interrompre par e-mail, chat, ping ou autrement pour obtenir de l'aide avec une aide de mixin personnalisée, ou utiliser une documentation détaillée qui inclut la vérification du code pour les aider mutuellement. (Pour ce point, ce n'est pas seulement un problème avec SASS: tout code partagé doit communiquer via des interruptions ou des documents.) Prenons maintenant certaines des méthodes les plus utiles de vérification SASS.

Vérifiez une seule valeur

mixin et fonction prennent des paramètres. Si vous passez le code à d'autres développeurs au travail ou publiez des bibliothèques open source, vous devez vous assurer que les paramètres correspondent à votre intention. Ces fonctions sont utiles pour vérifier les variables dans les paramètres.

Assurez-vous que la variable existe: variable-exists()

Si votre fonction ou votre mixin dépend d'une variable définie par le développeur, utilisez la fonction variable-exists() appropriée pour vous assurer que la variable existe. Cette fonction renvoie True ou Faux selon que la variable a été créée et définie.

@mixin create-font-size() {
  @if variable-exists(base-font) {
    font-size: $base-font;
  } @else {
    @error "请定义变量 `$base-font`。";
  }
  @if variable-exists(line-height) {
    line-height: $line-height;
  } @else {
    @error "请定义变量 `$line-height`。";
  }
}

// 开发者的代码
$base-font: 18px;
$line-height: 1.5;
.element {
  @include create-font-size;
}
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cependant, une meilleure option que de compter sur les développeurs pour définir correctement les variables globales est d'inclure ces variables par défaut dans votre bibliothèque:

// 你的插件:
$base-font: 18px !default;
$line-height: 1.5 !default;

@mixin create-font-size() {
  //等等...
}

// 开发者的代码:
$base-font: 16px;
p {
  @include create-font-size();
}
Copier après la connexion
Copier après la connexion

Type de valeur de vérification: type-of()

Si vous avez besoin de connaître le type de valeur représenté par une variable, veuillez utiliser type-of(). Cette fonction renverra l'une des chaînes suivantes:

  • String
  • couleur
  • numéro
  • bool
  • null
  • Liste
  • map

Ceci est utile pour vérifier certains types d'entrées. Vous pouvez vous assurer que le développeur ne passe que les valeurs au mixin qui crée la taille:

@mixin create-font-size() {
  @if variable-exists(base-font) {
    font-size: $base-font;
  } @else {
    @error "请定义变量 `$base-font`。";
  }
  @if variable-exists(line-height) {
    line-height: $line-height;
  } @else {
    @error "请定义变量 `$line-height`。";
  }
}

// 开发者的代码
$base-font: 18px;
$line-height: 1.5;
.element {
  @include create-font-size;
}
Copier après la connexion
Copier après la connexion
Copier après la connexion

Vous pouvez également utiliser type-of() pour vous assurer que le mélange de couleurs ne traite que les couleurs:

// 你的插件:
$base-font: 18px !default;
$line-height: 1.5 !default;

@mixin create-font-size() {
  //等等...
}

// 开发者的代码:
$base-font: 16px;
p {
  @include create-font-size();
}
Copier après la connexion
Copier après la connexion

Si vous avez besoin de développeurs pour créer des cartes de paramètres de configuration pour les thèmes, vous pouvez vous assurer qu'ils ont des cartes valides:

@mixin size($height, $width: $height) {
  @if type-of($height) == number {
    height: $height;
  } @else {
    @warn "确保 `$height` 是一个数字。";
  }
  @if type-of($width) == number {
    width: $width;
  } @else {
    @warn "确保 `$width` 是一个数字。";
  }
}
Copier après la connexion

Unités pour confirmer les nombres: unit()

Parfois, les opérations mathématiques dans les fonctions ou le mixine nécessitent des unités spécifiques dans leurs paramètres. Vous pouvez utiliser unit() pour confirmer que la valeur a la bonne unité. Par exemple, vous pouvez utiliser un mixin pour créer des dimensions de pixels et d'unité REM. ( Notez que vous feriez mieux d'exécuter le package avec une tâche pour cela, mais si vous avez besoin de le garder en sass, continuez à lire. )

@function color-fade($color) {
  @if type-of($color) == 'color' {
    @return rgba($color, .8);
  } @else {
    @warn "确保你将有效的颜色传递给 color-fade() 函数。";
  }
}
Copier après la connexion

Vérifiez la liste et la carte

Nous avons vu comment utiliser type-of() pour nous assurer que les variables contiennent des listes ou des cartes. Nous pouvons également tester deux choses importantes: si les valeurs sont dans la liste et si les clés sont dans la carte.

Trouver des valeurs dans la liste: index()

La fonction

index() vous dira si la valeur est trouvée dans la liste. Techniquement, il renverra la position de la valeur dans la liste (un nombre) ou NULL. Ce n'est pas une véritable fonction booléenne, mais pour notre objectif ici, les valeurs vraies et fausses sont suffisantes.

index() La fonction prend deux paramètres: la liste et la valeur que vous souhaitez trouver dans la liste. Cette fonction est utile pour tester les mesures de certaines valeurs dans un mélange. Si nous avons un mélange qui produit des calculs de rembourrage ou de marge en utilisant le raccourci supérieur, à droite, en bas ou à gauche, nous voulons nous assurer que nous n'essayons pas de calculer des valeurs comme initial, héritage ou auto.

@mixin generate-theme($settings) {
  @if type-of($settings) == 'map' {
    // 此处输出
  } @else {
    @warn "确保 `$settings` 是一个 Sass 映射。";
  }
}
Copier après la connexion

Assurez-vous que la carte a des clés: map-has-key()

Si vous vérifiez une clé spécifique dans la carte, vous pouvez utiliser la fonction map-has-key() pour vous assurer que la clé existe sur la carte que vous vérifiez. Cela sera très utile si vous utilisez $breakpoints cartographie et mélange de requête multimédia:

$rem-size: 16px !default;

@mixin px-rem($property, $value) {
  @if unit($value) == 'px' {
    #{$property}: $value;
    #{$property}: $value / $rem-size * 1rem;
  } @elseif unit($value) == 'rem' {
    #{$property}: $value * $rem-size / 1rem;
    #{$property}: $value;
  } @else {
    @warn "确保 `$value` 以 px 或 rem 为单位。";
  }
}
Copier après la connexion

Vérifiez le mixin et les fonctions

Parfois, vous rédigerez un mixin ou une fonction qui dépend d'un mixin ou d'une fonction existant ou d'une autre bibliothèque SASS. Mettons à jour le mixin bp() de l'exemple précédent pour s'appuyer sur la bibliothèque Sass Sass. Nous pouvons l'étendre comme ceci:

$rem-size: 16px !default;

@mixin margin-rem($values...) {
  $output: ();
  @each $value in $values {
    @if index(auto inherit initial 0, $value) {
      $output: append($output, $value);
    } @else {
      $output: append($output, $value / $rem-size * 1rem);
    }
  }
  margin: #{$output};
}
Copier après la connexion

Maintenant, notre mixin bp() (plus court et utilise des valeurs mappées) utilisera breakpoint() mixin quand il existe. Sinon, il retombera à notre propre code de mixin de requête multimédia.

Il existe une fonction correspondante appelée function-exists(). Vous pouvez l'utiliser pour tester si une fonction spécifique existe. Si vous avez des opérations mathématiques qui reposent sur des fonctions non standard, vous pouvez vous assurer d'inclure des bibliothèques contenant la fonction. Compass a ajouté une fonction pow() pour les mathématiques exponentielles. Si vous créez un rapport de taille de police qui nécessite la fonction, testez-le:

@mixin create-font-size() {
  @if variable-exists(base-font) {
    font-size: $base-font;
  } @else {
    @error "请定义变量 `$base-font`。";
  }
  @if variable-exists(line-height) {
    line-height: $line-height;
  } @else {
    @error "请定义变量 `$line-height`。";
  }
}

// 开发者的代码
$base-font: 18px;
$line-height: 1.5;
.element {
  @include create-font-size;
}
Copier après la connexion
Copier après la connexion
Copier après la connexion

Questions de rapport: @warn et @error

Comme vous l'avez peut-être remarqué dans l'exemple de code ci-dessus, j'ai prêté attention à fournir de bons commentaires aux développeurs lorsque notre validation capture une entrée incorrecte. La plupart du temps, j'ai utilisé

. Cette directive envoie des messages à la console du développeur, mais permet au compilateur de terminer l'exécution. @warn

Parfois, lorsque j'ai besoin d'arrêter complètement le compilateur (aucune entrée ou fonction spécifique, beaucoup de sortie sera cassée), j'utilise

pour envoyer le message à la console et arrêter le compilateur. @error

Pour plus d'informations sur la différence entre

et @warn, vous pouvez consulter mon article précédent sur ce sujet ou la section correspondante dans la référence SASS pour SitePoint. @error

Conclusion

Personne n'est parfait - ceux qui utilisent notre code ne sont pas, et pas même nous-mêmes après avoir écrit notre code pendant quelques heures! C'est pourquoi il est très important d'aider nous-mêmes et les autres en validant les entrées dans le mixin et les fonctions. Ces techniques vous aident non seulement à utiliser votre propre code plus efficacement, mais aussi pour que les équipes partagent et entretiennent plus facilement les bibliothèques SASS.

Comment empêchez-vous les erreurs de SASS? Veuillez nous faire savoir dans les commentaires!

FAQS (FAQ) sur la vérification des entrées dans Sass Mixin and Functions

Quel est le but de vérifier l'entrée dans le mixin SASS et les fonctions?

La vérification de l'entrée dans le mixin SASS et les fonctions est essentielle pour maintenir l'intégrité et la fonctionnalité du code. Il permet de s'assurer que les types de données transmis pour le mixin et la fonction sont corrects et sont conformes au format attendu. Cela empêche les erreurs et les bogues dans le code, le rendant plus puissant et plus fiable. Il rend également votre code plus facile à déboguer et à maintenir, car vous pouvez rapidement identifier et corriger tous les problèmes dans les données d'entrée.

Comment vérifier l'entrée dans le mixin et la fonction SASS?

SASS fournit des fonctions intégrées que vous pouvez utiliser pour vérifier les entrées dans le mixin et les fonctions. Il s'agit notamment de

, type-of() et unit(), etc. Vous pouvez utiliser ces fonctions pour vérifier le type et l'unité des données d'entrée, et une erreur sera lancée si l'entrée ne répond pas aux critères attendus. Par exemple, vous pouvez utiliser la fonction unitless() pour vérifier si l'entrée est un nombre, et sinon, une erreur sera lancée. type-of()

Puis-je créer une fonction de validation personnalisée dans SASS?

Oui, vous pouvez créer des fonctions de validation personnalisées dans SASS. Ceci est très utile si vous avez besoin d'effectuer des vérifications de validation plus complexes qui ne peuvent pas être implémentées à l'aide de fonctions intégrées. Pour créer une fonction de validation personnalisée, définissez simplement une nouvelle fonction à l'aide de la directive @function, puis utilisez la directive @return pour renvoyer une valeur basée sur la vérification de validation.

Que se passe-t-il si la validation d'entrée échoue dans le mixin SASS ou la fonction?

Si la validation d'entrée dans le mixin SASS ou la fonction échoue, une erreur sera lancée et la compilation du code SASS s'arrêtera. Cela peut vous aider à identifier et à corriger rapidement tous les problèmes dans les données d'entrée et à empêcher les bogues et les erreurs dans la sortie CSS finale.

Comment gérer les erreurs dans le mixin SASS et les fonctions?

SASS fournit la directive @error, que vous pouvez utiliser pour lancer un message d'erreur personnalisé lorsque la vérification des entrées échoue. Ceci est particulièrement utile pour le débogage, car vous pouvez fournir des informations détaillées sur la nature de l'erreur et comment le réparer.

Puis-je utiliser la fonction d'introspection SASS pour la validation d'entrée?

Oui, la fonction d'introspection SASS peut être utilisée pour la validation d'entrée. Ces fonctions vous permettent de vérifier le type, l'unité et d'autres propriétés des données d'entrée et peuvent être utilisées conjointement avec la directive @error, qui peut lancer un message d'erreur personnalisé lorsque l'entrée ne répond pas aux critères attendus.

Quels sont les cas d'utilisation courants pour valider l'entrée dans le mixin SASS et les fonctions?

Vérifiez que l'entrée peut être utilisée dans une variété de scénarios dans le mixin SASS et les fonctions. Par exemple, vous voudrez peut-être vous assurer que la valeur de couleur transmise au mélange est une couleur valide, ou que le nombre passé à la fonction a la bonne unité. La validation d'entrée peut également être utilisée pour appliquer certaines contraintes ou règles dans le code, comme s'assurer qu'un certain paramètre est toujours fourni, ou qu'une valeur se situe dans une plage spécifique.

Puis-je tester si le mixin existe dans le SASS?

Oui, vous pouvez utiliser la fonction mixin-exists() pour tester si le mixin existe dans SASS. Si Mixin existe, cette fonction renvoie vrai, sinon faux. Ceci est très utile pour prévenir les erreurs dans votre code, car vous pouvez vérifier si le mixin existe avant d'essayer de l'inclure.

Comment utiliser la fonction unit() pour la validation d'entrée dans SASS?

La fonction

dans unit() dans SASS renvoie l'unité d'un nombre. Vous pouvez utiliser cette fonction dans la validation d'entrée pour vérifier si le numéro a la bonne unité. Par exemple, vous pouvez vous assurer que la valeur de longueur transmise au mixin est en pixels, ou que la valeur temporelle transmise à la fonction est en quelques secondes.

Quelles sont les meilleures pratiques pour valider l'entrée dans le mixin SASS et les fonctions?

Les meilleures pratiques pour valider les entrées dans SASS Mixin incluent: toujours la vérification des données d'entrée; Message d'erreur; et testez soigneusement votre code pour vous assurer que la vérification de vérification fonctionne correctement. @error

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Blue Prince: Comment se rendre au sous-sol
1 Il y a quelques mois By DDD
Nordhold: Système de fusion, expliqué
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1664
14
Tutoriel PHP
1269
29
Tutoriel C#
1248
24
Comment créer un compte à rebours animé avec HTML, CSS et JavaScript Comment créer un compte à rebours animé avec HTML, CSS et JavaScript Apr 11, 2025 am 11:29 AM

Avez-vous déjà eu besoin d'un compte à rebours sur un projet? Pour quelque chose comme ça, il pourrait être naturel d'atteindre un plugin, mais c'est en fait beaucoup plus

Guide des attributs de données HTML Guide des attributs de données HTML Apr 11, 2025 am 11:50 AM

Tout ce que vous avez toujours voulu savoir sur les attributs de données dans HTML, CSS et JavaScript.

Une preuve de concept pour rendre Sass plus rapidement Une preuve de concept pour rendre Sass plus rapidement Apr 16, 2025 am 10:38 AM

Au début d'un nouveau projet, la compilation SASS se produit en un clin d'œil. Cela se sent bien, surtout quand il est associé à BrowSersync, qui recharge

Pendant que vous n'étiez pas à la recherche, les gradients CSS se sont améliorés Pendant que vous n'étiez pas à la recherche, les gradients CSS se sont améliorés Apr 11, 2025 am 09:16 AM

Une chose qui a attiré mon œil sur la liste des fonctionnalités pour le polyfill à gradient conique () de Lea.

Une comparaison des fournisseurs de formulaires statiques Une comparaison des fournisseurs de formulaires statiques Apr 16, 2025 am 11:20 AM

Essayons de savoir un terme ici: "fournisseur de formulaire statique". Vous apportez votre HTML

Comment construire des composants Vue dans un thème WordPress Comment construire des composants Vue dans un thème WordPress Apr 11, 2025 am 11:03 AM

La directive en ligne en ligne nous permet de construire des composants Vue riches en tant qu'amélioration progressive par rapport au balisage WordPress existant.

Les trois types de code Les trois types de code Apr 11, 2025 pm 12:02 PM

Chaque fois que je commence un nouveau projet, j'organise le code que je regarde en trois types ou catégories si vous le souhaitez. Et je pense que ces types peuvent être appliqués à

PHP est A-OK pour les modèles PHP est A-OK pour les modèles Apr 11, 2025 am 11:04 AM

Les modèles PHP obtiennent souvent un mauvais rap pour faciliter le code inférieur - mais cela ne doit pas être le cas. Voyons comment les projets PHP peuvent appliquer un base

See all articles