일반 함수와 비슷하게 타입 선언을 여러 번 하면 됩니다. 다만 함수의 구현부는 한 번만 나와야 하고, 그 구현부에서 여러 번 타입 선언한 것들에 대해 모두 대응할 수 있어야 합니다. constructor(), constructor(name: string, married: boolean), constructor(name: string, age: number, married: boolean)에 대응하기 위해 구현부가 조금 복잡해졌습니다.
클래스의 속성에도 인덱스 시그니처를 사용할 수 있습니다.
class Signature {
[propName: string]: string | number | undefined;
static [propName: string]: boolean;
}
const sig = new Signature();
sig.hello = 'world';
Signature.isGood = true;
static 속성에도 인덱스 시그니처가 가능하여 속성을 자유롭게 추가할 수 있습니다.