`extends` 判断的依据是类型是否是 assignable(能赋值的),而 `readonly` 并不能影响类型的 assignable 特性。 通过 Google 找到一个能够判别 `readonly` 的方法,仅供参考: type IsEqual = (() => T extends A ? 1 : 2) extends () => T1 extends B ? 1 : 2 ? true : false; type A = IsEqual; // false 代码出处:[https://github.com/microsoft/TypeScript/issues/27024#issuecomment-510924206](https://link.segmentfault.com/?enc=L1QjRm8%2BTp3oYF5O58Bgzg%3D%3D.CDY6u6T2DlOzOJwkVqpDKKZzOr%2FwFBTqeVAnddGLTNxJqlQ9fsGmNzvFbLaQEW4CaJbftgNXkfgUluGhSkJuM2QMPMFcr6une1wLTKamjF8%3D) 希望对你有所帮助!