Một cách tiếp cận sạch sẽ
Bạn có thể cân nhắc sử dụng một thư viện rất nhỏ, không phụ thuộc như Not . Giải quyết mọi vấn đề:
let number = 10
let array = []
not('number', 10)
not('number', [])
let not = Object.create(Not)
not.defineType({
primitive: 'number',
type: 'integer',
pass: function(candidate) {
return candidate.toFixed(0) === candidate.toString()
return Number.isInteger(candidate)
}
})
not.not('integer', 4.4)
not.is('integer', 4.4)
not.is('integer', 8)
Nếu bạn biến nó thành thói quen, mã của bạn sẽ mạnh hơn rất nhiều. Typecript giải quyết một phần của vấn đề nhưng không hoạt động trong thời gian chạy, điều này cũng rất quan trọng.
function test (string, boolean) {
not('string', string)
not('boolean', boolean)
}