목록언어/TypeScript (6)
설모의 기록
ES5 에서 원시 타입(primitive type)은 6가지가 있었죠. 바로 boolean, number, string, null, undefined, object 입니다. 이제 ES6 에서부터 Symbol 이라는 타입이 하나 추가되었습니다. 간단한 예제는 아래와 같습니다. 언뜻 보면 'String 아니야?' 라고 할 수 있겠지만 String 타입이 아니라 Symbol 타입입니다. Symbol 타입을 사용하는 이유는 변수나 메소드같은 것들의 이름을 충돌 없이 프로그래밍 하기 위해서입니다. 간단한 예를 들어보겠습니다. Array.isArray() 메소드가 생기기 이전, 필요에 의해 string 을 반환하는 Array.isArray() 메소드를 구현해 코드에 추가했다고 가정해보겠습니다. 그 이후 boolea..
예전에 node.js 로 서버를 구현할 때 Promise 를 얼핏 보았는데 어떻게 사용하는지를 몰라서 넘겼던 것을 이제야 공부하고 정리하네요 :)우선 아래의 예제를 보겠습니다.import fs = require('fs'); function loadJSONSync(filename: string) { return JSON.parse(fs.readFileSync(filename)); } // json 파일이 정상적으로 존재할 때 console.log(loadJSONSync('good.json')); // 파일이 존재하지 않아 loadJSONSync() 메소드가 에러를 발생할 때 try { console.log(loadJSONSync('absent.json')); } catch (err) { console.lo..
What's up with the IIFEThe js generated for the class could have been:클래스를 이용해 생성된 코드이다.function Point(x, y) { this.x = x; this.y = y; }Point.prototype.add = function (point) { return new Point(this.x + point.x, this.y + point.y); };The reason its wrapped in an Immediately-Invoked Function Expression (IIFE) i.e.즉시 실행함수 표기법으로 감싸진 이유는(function () { // BODY return Point; })();has to do with inherit..
superNote that if you call super on a child class it is redirected to the prototype as shown below:만약 자식 클래스에서 super 를 호출했다면 프로토타입으로 리디렉션된다.class Base { log() { console.log('hello world'); } } class Child extends Base { log() { super.log() }; }generates:var Base = (function () { function Base() { } Base.prototype.log = function () { console.log('hello world'); }; return Base; })();var Child = (f..
ClassesThe reason why it's important to have classes in JavaScript as a first class item is that:자바스크립트에서 일급 객체로서 클래스들을 사용하는게 왜 중요한지에 대한 이유가 나와있다. Classes offer a useful structural abstractionProvides a consistent way for developers to use classes instead of every framework (emberjs,reactjs etc) coming up with their own version.Object Oriented Developers already understand classes. 클래스들은 유용한 구조적..
Index SignaturesAn Object in JavaScript (and hence TypeScript) can be accessed with a string to hold a reference to any other JavaScript object.자바스크립트나 타입스크립트에서 객체는 다른 자바스크립트 객체에 대한 참조를 가지고 있는 string 으로 접근 가능하다. Here is a quick example:let foo:any = {}; foo['Hello'] = 'World'; console.log(foo['Hello']); // World We store a string "World" under the key "Hello". Remember we said it can store any J..