옵셔널프로퍼티연산자 ?
어떤값이 undefined타입이 될수 있다는 유니언타입임을 명시하는 연산자다.
test(arg?:string){
console.log(arg?.charAt(1));
}
타입을 명시하기위해 사용되었다
arg.charAt(1);
arg가 undefined이면 에러가 발생되고 에러가 처리되지 않으면 스크립트는 중단된다.
arg?.charAt(1)
arg가 undefined이더라도 에러가 발생하지않고 undefined를 반환한다.
표현식에서 ?가 사용되면 에러를 발생시키지 않게 하기 위해 사용한다.
arg!:string;
arg는 string타입으로 undefined가 아님을 명시한다.
arg!.length
arg는 length프로퍼티를 가진 객체임을 사용자가 단언하는 것이다.
length프로퍼티가 없어서 에러가 발생하면 전적으로 사용자의 몫이다.