typescript 在'io-ts'中,'t.type'和't.strict`有什么区别?

bqucvtff  于 2022-11-18  发布在  TypeScript
关注(0)|答案(1)|浏览(113)

我原以为t.strict会在没有严格遵守定义的对象上抛出,但令我惊讶的是,没有在t.strict中定义的额外属性仍然通过了验证。有人知道t.typet.strict之间的区别吗?

omhiaaxx

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

相关问题