Maison >interface Web >Voir.js >typeof ne fonctionne pas dans vue
L'utilisation de typeof pour vérifier les types de variables dans Vue peut ne pas fonctionner car le système réactif de Vue proxy les variables. Les solutions incluent : 1. Utilisez Vue.util.typeCheck ; 2. Utilisez Object.prototype.toString.call(myVariable) ; 3. Utilisez le plug-in transform-typeof-symbol de Babel.
typeof n'est pas valide dans Vue
Dans Vue.js, l'utilisation de l'opérateur typeof
pour vérifier le type d'une variable peut échouer car le système réactif unique de Vue traitera les variables comme étant un agent. typeof
运算符来检查变量的类型可能会失效,因为 Vue 特有的响应式系统会对变量进行代理。
原因:
当一个变量被响应式地代理时,它会被一个包裹对象(wrapper object)替换。这个包裹对象会劫持对变量的访问,使之在值发生变化时能够自动触发更新。
解决方法:
为了在 Vue 中正确检查变量的类型,可以使用以下方法之一:
Vue.util.typeCheck
:<code class="js">import { typeCheck } from 'vue/types/util' typeCheck(myVariable) === 'Object' // true</code>
Object.prototype.toString.call(myVariable)
:<code class="js">Object.prototype.toString.call(myVariable) === '[object Object]' // true</code>
transform-typeof-symbol
插件:此插件会将 typeof
运算符编译成更可靠的替代方案。具体使用方法请参考 Babel 文档。
注意:
Vue.util.typeCheck
只能检查基础类型(如 Object
、Array
和 String
)。Object.prototype.toString.call(myVariable)
可以检查更广泛的类型,包括 Vue 特有的类型。transform-typeof-symbol
Vue.util.typeCheck
: 🎜🎜 🎜rrreeeObject.prototype.toString.call(myVariable)
: 🎜🎜🎜rrreeetransform-typeof- de Babel symbol
Plugin : 🎜🎜🎜🎜Ce plugin compile l'opérateur typeof
en une alternative plus fiable. Veuillez vous référer à la documentation Babel pour une utilisation spécifique. 🎜🎜🎜Remarque : 🎜🎜Vue.util.typeCheck
ne peut vérifier que les types de base (tels que Object
, Array
et Chaîne
). 🎜Object.prototype.toString.call(myVariable)
peut vérifier une plus large gamme de types, y compris les types spécifiques à Vue. 🎜transform-typeof-symbol
de Babel doit être activé dans la configuration de Babel. 🎜🎜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!