Typescript条件类型似乎允许null

Typescript条件类型似乎允许null,typescript,conditional-types,Typescript,Conditional Types,给定此条件类型示例: type MyType = 'Number' | 'String'; interface Test<T extends MyType> { bar: T extends 'Number' ? 25 : '25' } type MyType='Number'|'String'; 接口测试{ 条形图:T扩展“数字”?25:“25” } 如果我尝试: const test: Test<'Number'> = {bar: null} const

给定此条件类型示例:

type MyType = 'Number' | 'String';

interface Test<T extends MyType> {
  bar: T extends 'Number' ? 25 : '25'
}
type MyType='Number'|'String';
接口测试{
条形图:T扩展“数字”?25:“25”
}
如果我尝试:

const test: Test<'Number'> = {bar: null}
const test:test={bar:null}
我没有抱怨,这似乎是有效的打字稿。但是,当我将鼠标悬停在
栏上时,我会看到一个弹出窗口,上面写着
(property)Test.bar:25
这似乎意味着TS理解的类型是正确的


那么,为什么以这种方式分配时没有错误?我如何解决这个问题呢?

只需启用
--strict
--strictNullChecks
只需启用
--strict
--strictNullChecks

@RobbyCornelissen无所谓,这只是一个例子。。。在这里,它旨在显示一个示例联合类型。可以是枚举,或任何其他联合类型,不会改变任何东西,它不是关于
number | string
…@RobbyCornelissen,这没关系,这是一个示例。。。在这里,它旨在显示一个示例联合类型。可以是枚举或任何其他联合类型,不会更改任何内容,它与
number | string
无关。。。