typescript is keyword

1
2
3
4
5
function isValidPostAttributes(
attributes: any
): attributes is PostMarkdownAttributes {
return attributes?.title;
}
  • remix 튜토리얼하다가 요상한 문법을 보았다
  • any같은 . 찍으면 자동완성 안뜨는 타입들을 특정 타입으로 좁혀줘서, 자동완성 지원도 받을 수 있다
example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function isNumber(x: any): x is number {
return typeof x === 'number';
}

function isString(x: any): x is string {
return typeof x === 'string';
}

function hello(value: any) {
if (isNumber(value)) {
return value.toFixed();
}
if (isString(value)) {
return value.length;
}
throw new Error(`hello error`);
}
  • any로 받았는데, 타입 가드를 통과하면
  • 해당 타입처럼 다룰 수 있다
  • as로 강제 캐스팅하여 사용하지 않아도 된다!

참고