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,
) {
...
}
}
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,
) {
...
}
}
Share
Improve this question
asked 2 days ago
AlexAlex
68k185 gold badges459 silver badges650 bronze badges
1 Answer
Reset to default 2You 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[],
) {
...
}
}
Playground