Ember必需的组件参数

ctrmrzij  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(132)

如何在ember组件中要求参数。
例如:

class MyComponent extends Component {
  get my_value() {
    return this.args.my_argument + 1
  }
}

我希望组件在示例化时抛出错误,而不是在调用函数时。
我能想到的唯一办法是这样的:

class MyComponent extends Component {
  constructor(owner, args) {
    super(owner, args)
    assert(!!args.my_argument, "MyComponent requires my_argument")
  }
  ...
}

然而,这似乎有点乏味,而且看起来不正确:/
编辑:
如果我能指定参数的类型就更好了。

vfwfrxfs

vfwfrxfs1#

我认为你的Assert是正确的。如果你想确保它也是正确的类型,你可以总是用typeofAssert。

class MyComponent extends Component {
  constructor(owner, args) {
    super(owner, args)
    assert("MyComponent requires my_argument", typeof args.my_argument === "string")
  }
  ...
}

但是要记住的是Assert只在开发构建期间可用,它会从任何生产构建中删除。因此,如果您在生产构建中需要此检查,您必须编写自己的Assert方法。
Assert已从生产版本中删除,因此可以出于文档和调试目的自由添加它们,而不必担心会导致任何性能损失。但是,正因为如此,它们不应用于在正常使用过程中可能会失败的检查。
https://api.emberjs.com/ember/release/functions/@ember%2Fdebug/assert

相关问题