내가 타입스크립트를 배우고싶은 이유는
첫째, 타입 안정성을 확보하고 싶기 때문
둘째, 프로젝트 리팩토링할때 적용하고싶기 때문
셋째, 좀더 구체적인 에러 메세지를 띄워주기 때문
넷째, 취업할때 필요하기 때문
이다.
타입스크립트를 빠르게 배우고싶은데 처음에 대략적인 이론 공부가 필요하긴 하지만, 무언가 만들면서 써봐야 금방 배울 수 있다고 확실히 느꼈다.
프로젝트를 하면 실력이(혹은 응용력(혹은 자신감)) 훅훅 는다...
프로젝트 리팩토링에 사용할거긴 하지만 그전에 조금이나마 배워보고! 적용하고싶다.
ms에서 만들었다고 함.
https://www.typescriptlang.org/docs/handbook/intro.html
https://nomadcoders.co/typescript-for-beginners/lobby
약 30%를 들었는데 자바스크립트에서 type만 추가된 것 같다.
기본타입
let data: string; // string 외에도 number, boolean 등등으로 설정
기본적으로 콜론+타입 을 적어서 어떤 타입으로 사용할 것인지 정해준다. 타입스크립트는 타입을 추론해주기때문에 굳이 적지 않아도 무방하다! 그러나 나는 타입스크립트 공부가 필요하니까 다 적을것임.
배열
let data: string[]; let data: Array<string>; // number, boolean..
위와 같이 두가지방법이 있음. 배열 내의 요소들이 어떤 타입인지도 같이 정한다.
| or & 활용도 가능하다.
let data: (string | number)[]; 배열에 string 또는 number가 들어온다.
모든 타입을 의미하는 any도 있음
되도록 쓰지 말것.
물론 ajax같이 어떤값이 올지 모르는 경우도 있을 수 있음!"noImplicitAny": true;
위 설정을 통해 엄격하게 any를 금지하기도 함
튜플
let tuple: [string, number]; tuple = ['seolgi', 3];
이때 배열의 길이, 인덱스 값의 타입이 맞아야한다.
무조건 0번째 요소는 string, 1번째 요소는 number여야 함.
aliases(별칭): type도 변수화해서 사용 가능
type User = { //대문자로 시작함 name: string, age: number } let selogi: User;
readonly 읽기전용 설정도 가능
읽기전용으로 설정하면 수정할 수 없게 된다.
null, undefined, Never타입
never는 에러메시지 리턴할때 사용하는 것 같다.
위 세 타입은 아직 잘 모르겠고 직접 사용해봐야 알 것 같음.
리턴하지 않는 함수에서 void
function hello(username: string): void { console.log(`Hello ${username}!`); }
함수의 인수, 리턴되는 값의 타입도 설정함
?
선택적 속성 설정type User = { name: string, age: number, gender?: string //옵션. 없어도 괜찮다. }