Typescript 条件类型似乎允许 null

Typescript conditional types seem to allow null

给定条件类型的示例:

type MyType = 'Number' | 'String';

interface Test<T extends MyType> {
  bar: T extends 'Number' ? 25 : '25'
}

如果我尝试:

const test: Test<'Number'> = {bar: null}

我没有收到任何抱怨,这似乎是有效的 Typescript。但是,当我将鼠标悬停在 bar 上时,我会弹出一个 (property) Test<"Number">.bar: 25 的窗口,这似乎意味着 TS 已经理解了正确的类型。

为什么我用这种方式分配时没有错误?我该如何解决?

只需启用 compiler option --strict--strictNullChecks