Typescript : liste dynamique à partir d'un tableau de tuples, pas d'intersection
P粉163951336
P粉163951336 2023-08-31 23:02:45
0
1
393
<p><pre class="brush:php;toolbar:false;">const intents = ["primaire", "secondaire", "accent", "danger"] comme const; const ButtonSizes = ["petit", "moyen", "grand"] as const; tapez IntentType = (type d'intentions)[numéro] ; tapez SizeType = (type de taille de bouton)[nombre] ; tapez ButtonProps = { intention ? : IntentType ; taille ? : Type de taille ; } & { [K dans IntentType comme `${Lowercase<K>}`] ? : booléen ; };</pré> <p> </p> <p>或者 喜欢 </p> <p>maintenant, si j'écris le code de manière plus statique, 喜欢:</p> <pre class="brush:php;toolbar:false;">type ButtonProps = { intention ? : « primaire » | "secondaire" | "accent" | "danger"; taille?: "petit" | "moyen" | "grand" ; primaire ? : booléen ; secondaire ? : booléen ; accent ? : booléen ; danger ? : booléen ; }</pré> <p> <p>第一个示例有效,但由于某种原因 VUE 抛出错误</p> <blockquote> <p>内部服务器错误:[@vue/compiler-sfc] DefineProps() est un outil de recherche en ligne 或文字类型。</p> </blockquote> <p> <p>
P粉163951336
P粉163951336

répondre à tous(1)
P粉384244473

Étant donné que l'erreur indique "Référence à une interface ou un type littéral", je suppose que définir ButtonProps comme une interface étendant un type de base devrait fonctionner :

type IntentAndSize = {
  [K in IntentType as `${Lowercase<K>}`]?: boolean;
};

interface ButtonProps extends IntentAndSize {
  intent?: IntentType;
  size?: SizeType;
}

Aire de jeux

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!