为可空参数断言



是否有任何干净的方法来断言可空参数与chai.js ?例如,假设我有以下方法:

public set numberOrNull ( value : number ) {
    chai.expect( value ).to.be.a( "number" );
    this._number = value;
}

如果我传递null给这个方法,我仍然会从chai得到一个异常。我当然可以这样做,但我想知道是否有更好的方法来做到这一点:

if ( null !== value ) {
    chai.expect( value ).to.be.a( "number" );
}
this._number = value;

您可以使用satisfy:

expect(value).to.satisfy(value => value === null || typeof value === 'number');

不想听起来令人反感,但我认为当您要测试的相应函数不允许null作为参数值时,它会更清晰。从我的角度来看,这将导致一个更容易推理的函数。

Edit:忽略了你使用TypeScript。如果是这样,我也同意@japrescott的评论,并依赖于语言的能力。

最新更新