2014-07-16 2 views
2

PHP에서 Node.js 로의 전환을 심각하게 고려하고 있습니다. 하지만 저는 Javascript에서 프로토 타이핑을 정말 좋아하지 않기 때문에 Typescript를 선호합니다.Node.js 대소 문자 포함

저는 Visual Studio 2013에서 기본 사항을 테스트하고 새로운 (Typescript) Express 프로젝트를 만들었습니다. Node.js for Visual Studio이 설치되어 있습니다.

다음
class Animal { 
    name: string; 
    constructor(theName: string) { this.name = theName; } 
    move(meters: number) { 
     alert(this.name + " moved " + meters + "m."); 
    } 
} 

class Snake extends Animal { 
    constructor(name: string) { super(name); } 
    move() { 
     alert("Slithering..."); 
     super.move(5); 
    } 
} 

class Horse extends Animal { 
    constructor(name: string) { super(name); } 
    move() { 
     alert("Galloping..."); 
     super.move(45); 
    } 
} 

내가 app.ts 다음 코드 조각을 추가 :

나는 타이프 스크립트 튜토리얼에서 다음 코드라는 animals.ts 파일을 추가, tstests라는 디렉토리를 생성
/// <reference path='tstests/animals.ts'/> 
var sam = new Snake("Sammy the Python"); 
sam.move(); 

IntelliSense와 프로젝트 작업을 모두 빌드하지만 프로젝트를 실행하려고하면 ReferenceError가 발생합니다. Snake가 정의되지 않았습니다.

아무도 내가 이것을 해결해야하는 방법을 설명 할 수 있습니까?

+0

더 자세히 설명합니다. https://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1 – basarat

답변

3

Node에서 실행 중이므로 외부 모듈을 사용할 수 있습니다.

교체 :

/// <reference path='tstests/animals.ts'/> 

import Animals = require('tstests/animals'); 

animals.ts 당신이 사용할 수 있도록하려는 모든 클래스에 단어 export을 추가 ...

//... 
export class Snake extends Animal { 
//... 

이제 참조 할 수 있습니다 Snake 클래스 사용 :

var sam = new Animals.Snake("Sammy the Python"); 

노드가 모듈을로드하여 사용 가능하게 만듭니다.

브라우저에서 실행중인 경우 스크립트 태그 내에서 올바른 순서로 각 스크립트를 참조했는지 확인해야하지만 Node가 모든 작업을 수행하므로 모든 작업을 피할 수 있습니다.

+0

그 트릭을 만들었습니다. 감사합니다! 나는 인터넷에서 발견 한 모든 기사가 AMD, 다른 사람들 CommonJS, RequireJS에 관해서 이야기했던 것처럼 혼란스러워했다. 그리고 그들 중 누구도 여러 파일을 사용하는 것에 대한 정말로 분명한 예를 가지고 있지 않았다. 그리고 마지막으로 TypeScript 모듈을 읽은 후에 나는 더 많은 것을 망 쳤습니다 .-) –

+0

답변이 도움이 되었기 때문에 기쁩니다. – Fenton