关于ts比较两个类型是否相同问题?-灵析社区

一只tomatoo

**这样写 判断不了只读属性和不是只读属性 有什么办法吗(这是为什么T_T)** type IsEqual = [T] extends [U] ? ([U] extends [T] ? true : false) : false type A = IsEqual // true 但希望是false

阅读量:289

点赞量:17

问AI
"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) 希望对你有所帮助!