Open junthus opened 7 years ago
헤더 파일, 컴파일 단계에서 ts 컴파일러가 사용 (그 이전에 린트가 난리침) 사용 가능한 함수와 속성의 구문/구조를 설명 (스펙 정의) 구현은 없음, 고로 js 코드를 생성하지 않음 외부 라이브러리를 사용하려면 필요 내 라이브러리를 딴 데서 사용하게 하려면 만들어 주면 좋음 (tsc -d) tsconfig.json 에다 읽어올 외부 타입 지정 or Triple-Slash-Directives { "compilerOptions": { "target": "es5", "module": "commonjs", "sourceMap": true, "strictNullChecks": false, "lib": [ "dom", "es6" ], "typeRoots": [ "node_modules/@types" ], "types": [ "hammerjs", "jasmine", "node", "source-map", "uglify-js", "webpack" ] }, "exclude": [ "node_modules", "dist" ] } /// <reference types="..." /> /// <reference path="..." /> 프로젝트 루트 하위에 선언한 .d.ts 파일은 컴파일러가 자동으로 확인 typings 그런데 마소가 그냥 npm install 하는 것을 권고해서 typings 는 망조
헤더 파일, 컴파일 단계에서 ts 컴파일러가 사용 (그 이전에 린트가 난리침)
tsc -d
{ "compilerOptions": { "target": "es5", "module": "commonjs", "sourceMap": true, "strictNullChecks": false, "lib": [ "dom", "es6" ], "typeRoots": [ "node_modules/@types" ], "types": [ "hammerjs", "jasmine", "node", "source-map", "uglify-js", "webpack" ] }, "exclude": [ "node_modules", "dist" ] }
/// <reference types="..." /> /// <reference path="..." />
npm install
// external.js var CONTACT_EMAIL_ARRAY = [ "help@site.com", "contactus@site.com", "webmaster@site.com" ];
// my ts code class GlobalLogger { static logGlobalsToConsole() { for(let email of CONTACT_EMAIL_ARRAY) { console.log(`found contact : ${email}`); } } }
자주 보게될 에러
error TS2304: Cannot find name 'CONTACT_EMAIL_ARRAY' 번역)CONTACT_EMAIL_ARRAY라는 변수 스펙 정의를 내놓지 않으면 나는 일을 하지 않겠다.
CONTACT_EMAIL_ARRAY
// global.d.ts declare var CONTACT_EMAIL_ARRAY: string [];
declare
책 - 정의 객체 (또는 변수 또는 함수)의 구현이 런타임에 해석된다는 뜻의 키워드. ts doc - (난 그런말 안 했는데...) "선언"
declare var - (전역)변수 선언
declare var
declare var foo: number;
declare const - readonly 변수 선언
declare const
declare let - block-scoped 변수 선언
declare let
declare function
window.greet
declare function greet(greeting: string): void;
myLib.greet
declare namespace myLib { function greet(s: string): string; }
declare function greet(n: number): string; declare function greet(s: string): string[];
see more - declaration-files/examples
ts 문서의 내용으로 미루어 봤을 때
typing.d.ts 는 어디서 생기는 이름인지 모르겠는데.. @denzels 어디서 보신 건지 알려주시면 찾아볼게요 ~
.d.ts
Hello! .d.ts
자주 보게될 에러
declare
책 - 정의 객체 (또는 변수 또는 함수)의 구현이 런타임에 해석된다는 뜻의 키워드. ts doc - (난 그런말 안 했는데...) "선언"
declare var
- (전역)변수 선언declare const
- readonly 변수 선언declare let
- block-scoped 변수 선언declare function
window.greet
myLib.greet
see more - declaration-files/examples