const user = {
name: "Daniel",
age: 26,
};
user.location;
Property 'location' does not exist on type '{ name: string; age: number; }'.
typescript에서는 에러를 내뿜어줌
Types for Tooling
타입정보를 가지고 있으니 사용할 수 있는 프로퍼티를 추천해 줄 수 있음
tsc, TypeScript compiler
tsc helloworld.ts 를 실행하면 해당 ts 파일을 js 파일로 컴파일 해줌
tsc에서 에러가 있는 코드를 컴파일 했을 때, 에러를 내뿜긴 하지만 js 파일을 생성해주기는 함. 그 이유는 이전에 javascript 코드가 돌아가는 코드인데, typescript 에서 컴파일 해서 안돌아가는게 이상하기 때문에 type checking만 해주고 js 파일을 만들어내기는 함
tsc --noEmitOnError hello.tsnoEmitOnError 옵션을 추가해주면 에러가 있으면 js 파일 생성안함
Strictness
strictness 설정은 옵션을 통해서 설정이 가능함. 그래서 더 엄격하게 체크할 수 있다.
strict : true 를 하면 모든 옵션들 다 활성화 시킬 수 있음(기본 설정임). 개별적으로 설정도 가능함
noImplicitAny : 해당 옵션을 키면 변수가 암묵적으로 any로 추론되는 애들에 대해서 에러를 내뿜음
strictnullChecks : null와 undefiend에 대한 handling을 좀 더 명시적으로 하게 해줌
d.ts
d.ts파일은 기존 JavaScript로 만들어진 서드파티 모듈들을 TypeScript 환경에서도 사용할 수 있도록 따로 타입만 정리해서 넣어둔 파일