javascript - 检查 javascript 对象属性类型

标签 javascript performance

我想知道是否有一种方法可以在 JavaScript 中定义对象属性类型。我的意思是,如果我有一个对象并且我想确保属性 a 是一个字符串,有没有办法做到这一点?

到目前为止,我已经找到了使用 getter 和 setter 的解决方案:

const anObject = {

    "value": "a value", 

    get a () {
        return this.value 
    }, 

    set a (val) {
        if (typeof(val) == "string") {
            this.value = val
        } else {
            throw "Invalid type!"
        }
    }

}

这有效吗?有一个更好的方法吗?谢谢!

附注我知道 js 是一种非类型语言,所以我不期望任何神奇的答案,但也许人们已经想出了一些聪明的解决方法。

最佳答案

我会将一个值设置为对象的属性,并使用模块reveakl patter 来封装它。因为现在没有什么可以阻止我为你的值(value)分配一个数字或其他东西

function value () {
  let value = "";
  return {
    get () {
      return value
    },
    set (val) {
      if (typeof val !== 'string') {
        return 
      }
      value = val
    }
  } 
}

关于javascript - 检查 javascript 对象属性类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47555141/

相关文章:

javascript - 将字符串解析为 JSON 对象

javascript - 如何使用Appium在iOS设备上执行向左滑动

javascript - 为什么 JavaScript 中的某些方法会复制所调用的对象?

mysql 调整变量 - 当前和默认值

javascript - Jquery URL重新加载

php - 自动化网站开发,如 wix.com 、 edicy.com 等

performance - Web 应用程序性能基准的建议

python 列表理解与 +=

c++ - 为什么 C++ lambda 在多次调用时比普通函数慢?

python - 嵌套 json 到 Pandas 非常慢