type ParamsA = { test: string } type ParamsB = { test: number } interface Base { create(params: unknown): void } class PageA implements Base { create(p: ParamsA) { } } class PageB implements Base { create(p: ParamsB) { } } let a = 1 const e = a > 1 ? new PageA() : new PageB() e.create({ test: '1' })  这里的 `create` 方法参数的类型理想状态下应该是 `ParamsA | ParamsB`,这里为什么会是 `ParamsA & ParamsB` [在线查看代码](https://link.segmentfault.com/?enc=tRAlKYgyWRH47uXPr61H%2Fw%3D%3D.Af6CljVP3iLsbMKBy3CWM5P9KlKkf8TbAVOv6Hqv182Y5E9nXmUjqghPqnxzWHewSgrARS19Tt67gs4zLHvp6Dx5OjfVRnfFxoYdfDkJeY9SC%2FGZIbGEsRxgLZApXsHrUxyhsNaUvBqcaIaHChNK3wEo4XDncpp25RXI2Lb2pW2WTndZOGle7VSCTdmMV0Z3nac06hn4pfIby%2B7LrEO5F7lC32OIC15wOM8CAX%2Fu8RLrP65E4omaTb9acFeIkRybt1of67PLSmbz11iBCFMrIJ7vMyiXfsVCCASjbWnnvWRObp71ruw0kzx2jRNECMcpSjaBVyYsSVBlnNmPi3qHuGhaqbFqUsT0MMPLJNozwBYlI1GyCU1xPFNmt8NShZbvjoltNX1ZVnjf9e%2BzPcPEbb7mp40%2F61YSgM%2B3XC6EA7yztEG9Fcu4PeYGKGnzxWIUe4MKGimPg88CGHkpBiodVV33GxyzNL3SFLgrebEOb2wDUTr0EvNVvBTHcacskNz5)