
터미널에서 현재위치 찾고(ls) 필요한 위치로 이동(cd)함.
packge.json이 있는지 확인하고 yarn add @types/react @types/react-dom하고 yarn add typescript 해줌.
그런후 packge.json에 가보면 "@types/react", "@types/react-dom", "typescript"가 설치되어 있는 것을 볼 수 있음.
타입스크립트형태로 작성된 코드를 브라우저는 인식할 수 없어서 TS => JS로 변환(컴파일)해주는 tsconfig.json을 설정해야 한다.
직접 만들어도 되고 만들어진거 가져와써도 됨.
npm으로 가서 tsconfig/create라고 검색해서 코드를 가져다가 tsconfig.json이라는 새파일을 만들고 붙여넣기 해줌.

// 타입추론 - 타입을 추가하지 않아도 예측해서 문자열로 지정함.
let aaa = "안녕";
aaa = 10; // X
// 타입명사
let bbb: string = "잘가";
bbb = 10; // X
// 타입명시가 필요한 상황 - 2개의 타입이 필요한 경우 정수형 또는 문자형으로 지정.
let ccc: number | string = 1000;
ccc = "1000원"; // O
// 숫자타입
let ddd: number = 10;
// ddd = "철수"; // O
// 불린타입
let eee: boolean = true;
eee = false;
// eee = "false"; // true로 작동함 X
// 배열타입
let fff: number[] = [1, 2, 3, 4, 5, "안녕하세요"]; // X
let ggg: string[] = ["철수", "영희", "훈이", 10]; // X
let hhh: string | string = [1, 2, 3, 4, 5, "안녕"]; // 타입을 추론해서 어떤 타입인지 알아낼 수 있음.
// 객체타입 - 객체 타입의 경우 interface를 작성해서 값은 i(객체이름)으로 하는 것이 관례, ?의미는 그 값이 들어올 수도 있고 안들어 올 수도 있을 경우에 사용.
interface iProfile {
name: string;
age: string | number;
school: string;
hobby?: string;
}
const profile: iProfile = {
name: "철수",
age: 8,
school: "다람쥐초등학교",
};
profile.name = "훈이";
profile.age = "8살";
profile.school = "중학교";
profile.hobby = "수영";
// 함수타입 => 어디서 몇번이던 호출 가능해서, 타입추론 안됨(타입 명시하기)
function add(num1: number, num2: number, unit: string): string {
return num1 + num2 + unit;
}
const result = add(1000, 2000, "원"); // 결과의 리턴 타입도 알 수 있음
const add2 = (num1: number, num2: number, unit: string): string => {
return num1 + num2 + unit;
};
const result2 = add2(1000, 2000, "원"); // 결과의 리턴 타입도 알 수 있음
// any타입 - 정말 힘든 경우아니면 굳이 사용X
let qqq: any = "철수"; // 자바스크립트와 동일
qqq = 123;
qqq = true;
문법 오류 감지: 잘못된 문법이나 구문 오류를 코드 실행 전 미리 감지
코딩 스타일 검사: 코드가 일관된 스타일을 유지하도록 체크 (들여쓰기, 세미콜론 사용 여부, 공백 규칙 등)
베스트 프랙티스 확인: 일반적으로 권장되지 않는 코드 패턴이나 잠재적인 문제를 감지 (정의되지 않은 변수 사용, 불필요한 코드 등)
성능 문제 감지: 성능에 영향을 줄 수 있는 코드 패턴이나 비효율적인 구문을 발견
function add(a, b) {
return a + b
}
// ex) 세미콜론을 항상 붙여야 한다라는 규칙이 있었다면 ESLint가 감지해서 경고를 출력함.
// eslint.config.js
export default [
{
rules: {
"no-unused-vars": "error",
"no-undef": "error",
"끄고싶은 코드": "3개중 하나 정하기"
}
}
];
코드 형식 일관성: 들여쓰기, 괄호 배치, 세미콜론 사용 등의 코딩 스타일을 일관되게 유지한다.
자동 정렬 및 포맷팅: 코드의 가독성을 높이기 위해 자동으로 포맷팅하여, 수동으로 코드 스타일을 수정할 필요가 없다.
팀 간 코드 일관성 유지: 여러 개발자가 협업할 때, 각 개발자가 서로 다른 스타일로 코드를 작성하는 문제를 방지해 준다.
function foo() {console.log("Hello"); }
// ⬇︎ 적용한다면?
function foo() {
console.log("Hello");
}
혼자할꺼면 설정 들어가서 설정해도 되는데, 협업을 한다는 가정하에 프리티어를 파일로 만든다.
vscode라는 최상단에 폴더 생성 => 폴더 안에 settings.json 파일생성
중괄호 만들고 저장하기 누르면 자동으로 포메팅해주는 설정("editor.formetONSave": true,(싫으면 false))
포메터 중에서 프리티어를 사용한다고 정하는 설정("editor.defaultFormetter": "esbenp.prettier-vscode")
2칸공백 or 4칸공백 등을 조절하는 방법은 prettierrc 파일을 생성해준다.
{"tabWidth": 2}작성하면 됨.