我原以为t.strict会在没有严格遵守定义的对象上抛出,但令我惊讶的是,没有在t.strict中定义的额外属性仍然通过了验证。有人知道t.type和t.strict之间的区别吗?
t.strict
t.type
omhiaaxx1#
这与您可以验证什么无关,而是您最终得到什么运行时对象:
import * as T from "io-ts"; const Foo = T.type({a: T.number, b: T.string}) const Bar = T.strict({a: T.number, b: T.string}) const foo = Foo.decode({a: 100, b: "", c: true}) const bar = Bar.decode({a: 100, b: "", c: true}) console.log(foo); console.log(bar); // No "c" property here
Blitz
1条答案
按热度按时间omhiaaxx1#
这与您可以验证什么无关,而是您最终得到什么运行时对象:
Blitz