莫回无
实际上,您可以选择使用打字稿执行类似的操作:这可能就是您正在寻找的。但你必须明确设置TArgs<true>type TArgs<T extends boolean> = { a: T, b: string, c: T extends true ? string : null }使用工厂函数的示例:type TArgs<T extends true | false> = { a: T, c?: T extends true ? string : null}const argsFactory = <T extends boolean>(a: T, c: T extends true ? string : null): TArgs<T> => { return { a, c }}// WorksargsFactory(true, "string");argsFactory(false, null);// Doesnt WorkargsFactory(false, "some String");argsFactory(true, null)