我有一个类似下面的JavaScript类,我需要控制输入变量的数据类型。
这被视为一种不良实践吗?有更好的解决方案吗?
class Store
{
constructor (name)
{
if (typeof name !== "string")
throw new Error("The first argument must be a string!");
createStore(name);
}
// [...]
}
这被视为一种不良实践吗?有更好的解决方案吗?
Flow
。这是一个库,它在函数参数中强制实施静态类型: https://flow.org/ - Bobby Matsonnull
并要求所有代码检查它,但异常在这种情况下几乎是理想的。异常也往往比仅返回错误代码更容易被开发人员注意到。99%的情况下,这种类型的错误是编程错误,而不是运行时错误,因此您希望错误立即出现在开发人员面前,以便他们可以修复代码。 - jfriend00new Store(123)
抛出错误。 - Bobby Matson