让我们说我们拥有
type U = A | B | C
我们需要不带某些选项的U型
function f<T option U>(u: U): U without T {...}
我们该如何表达
?
答案 0 :(得分:0)
是的,使用从标准库中排除。
type U = 'a' | 'b' | 'c';
type nonA = Exclude<U, 'a'>; // 'b' | 'c'
为了您的功能
function f<T extends U>(u: U): Exclude<U,T> {...}
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html#conditional-types
答案 1 :(得分:0)
100%工作示例
function withoutType<U, T extends U>(u: U) {
return u as Exclude<U, T>;
}
type Union = string | number | Function;
let x = 5;
let y = withoutType<Union, Function>(x); // let x: string | number;