How to make data
arg optional only if cat
argument is not 1 ?
export class MyClass<T extends 1 | 2 | 3>{
constructor(
public cat: T,
public data?: T extends 1 ? string[] : undefined,
) {
...
}
}
You could go with overloads.
export class MyClass<T extends 1 | 2 | 3> {
constructor(cat: 1, data: string[]);
constructor(cat: Exclude<T, 1>);
constructor(
public cat: T,
public data?: string[],
) {
...
}
}