출처 : https://www.youtube.com/watch?v=xkpcNolC270
- Javascript + 타입 엄격
- 에러 메시지 명확 : 오타 교정, 타입 체크
-> 언어보다는 코드 에디터 부가 기능 역할로 봐도 된다!
{
"compilerOptions" : {
"target" : "es5", //어느 버전의 자바스크립트로 컴파일할지
"module" : "commonjs"
}
}
브라우저는 ts로 된 내용을 못 읽으므로 js로 변환해야 사용 가능하다
터미널에 tsc -v를 입력해두고 끄지 않으면 자동변환된다
(ts -> js한 파일이 하나 생긴다 : 얘를 html에서 쓴다)
자바스크립트로 바꾸는 과정을 "컴파일"이라고 한다
자바스크립트 버전과 언제적 문법으로 바꿀 지 config에서 정해줄 수 있다
6. ts파일에서 타입스크립트를 쓴다
cf. 리액트, 뷰에 TS 설치를 하는 것은 또 방법이 다르다
let 이름 :string = 'kim';
//변수 :타입 (이 변수에 해당 타입만 들어올 수 있도록 한다)
let 이름 :string[] = ["kim", "park"]
//string만 있는 배열
let 이름 : {name? : string} = {name : 'kim'}
//name이라는 변수에는 무조건 string만
//?는 해당 속성이 없어도 에러가 나지 않도록 한다
let 이름 :string | number = 123;
//둘다 가능
let 이름 :string[] | number = 123;
type Name = string | number;
let 변수명2 :Name = 123; //타입도 변수로 쓸 수 있다, 대문자로 저장한다
function name(x:number) : number{ //매개변수로 숫자, 반환값으로 숫자
return x*2
}
type Member = [number, boolean];//튜플타입 (첫째는 number, 둘째는 boolean)
let john:Member = [123, true]
type Member ={
name : string,
age : string
....
[key:string] : string
//속성이 100개면 다 지정하기 귀찮음
//무조건 문자로 들어오는 속성들이 모두 string형태의 값을 가져야 한다는 말
}
let john : Member = {name : "kim"}
class User{
name:string; //클래스는 여기서 변수를 먼저 선언해줘야 하고 여기서 타입 선언
constructor(name:string ){ //여기서 타입 선언해줘야 한다
this.name = name;
}
}
이외 : 코딩룰, 타입문법 외의 기능 등 -> 실습을 하면서 공부