should.js
should.js copied to clipboard
Typings for custom assertions
Hi.
Node.js version?
8.11.1
Should.js version?
13.2.1
How to reproduce it?
When using shouldjs with Typescript and extending the should Assertions with a custom function: Lets say:
Assertion.add('asset', function() {
this.params = { operator: 'to be asset' }
this.obj.should.have.property('id').which.is.a.Number()
this.obj.should.have.property('path')
})
Compiling Typescript will throw an error when using the should(obj).asset() function because it doesn't exist on the type Assertion. Simplest solution would by adding the following to the Assertion interface to allow dynamic properties:
[key: string]: any;
I do not think this is a right idea. If i add such entry to typings it will be possible to call any sort of method. Even that does not exists.
@btd totally agree. This is just the first idea I came up with to keep the standard assertions and allow custom ones as well