초보자가 학습한 Type Script 시작 버전2.0

전회의 줄거리


Type Script 시작 버전0.2
Type Script 시작 버전0.5
Type Script 시작 버전1.0
실제로 타입 스크립트를 디코딩해보며 JS와 다르고 방법성을 가지고 놀면서 배웠다.
오늘은 모듈을 가져오거나 내보내면서 공부하고 싶어요.

http 모듈 가져와서 HTTP 서버 만들기


http 서버를 만들기 위해서는 http 모듈을 사용해야 합니다.TypeScript에서 import 문을 사용합니다.예를 들면 다음과 같다.
import * as http from 'http';
이 문법은 http 모듈에서 export의 변수와 함수 등을 모두 http의 변수import로 귀납한다는 뜻이다.
그럼 실제 인코딩.
app.ts
import * as http from 'http';

// classを指定してクラス化
class MyClass {
    message: String = 'TypeScript';

    // コンストラクター
    constructor() {
        // httpサーバーの設定
        const server: http.Server = http.createServer (
            (request: http.IncomingMessage, response: http.ServerResponse) => 
                this.requestHandler(request, response));

        // サーバーを起動してリクエスト待機状態とする.
        server.listen('5001');
    }

    private requestHandler(request: http.IncomingMessage, response: http.ServerResponse) : void {
        response.end('Hello World & ' + this.message + ' for HTTP');
    }
}

// MyClassクラスのインスタンスを作る
const myclass = new MyClass();
여기서 편역을 진행하다.
이렇게 해서 이런 느낌이 든다app.js.
app.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const http = require("http");
// classを指定してクラス化
class MyClass {
    // コンストラクター
    constructor() {
        this.message = 'TypeScript';
        // httpサーバーの設定
        const server = http.createServer((request, response) => this.requestHandler(request, response));
        // サーバーを起動してリクエスト待機状態とする.
        server.listen('5001');
    }
    requestHandler(request, response) {
        response.end('Hello World & ' + this.message + ' for HTTP');
    }
}
// MyClassクラスのインスタンスを作る
const myclass = new MyClass();
//# sourceMappingURL=app.js.map
진행node src/app.js, http 서버 구축에 대한 이번 예는 5001 포트 서버에서listen(대기) 상태가 되었습니다.
방문http://localhost:5001/을 통해 다음과 같은 응답을 얻을 수 있습니다.

이렇게 하면 http 서버를 세울 수 있다.

취향


여기서 프로그램의 기술을 바꾸어 보세요.

void 생략


app.ts
〜〜
private requestHandler(request: http.IncomingMessage, response: http.ServerResponse) : **void** {
    response.end('Hello World & ' + this.message + ' for HTTP');
}
〜〜
이void 부분인데 이걸 생략하면 어떻게 돼요?이런 의문.실제로 생략하고 빌딩을 진행해 봤는데 건물이 사실상 통과했다.
그럼, 이렇게 되면 빌딩이 통과되는데, 쓴 의미가 있습니까?갈 수 있을 것 같아서요.
//결론은 의미가 있습니다.이것도 컴파일할 때 오류가 발생할 수 있습니다.
예를 들어, 다음 두 함수를 고려합니다.
반환 값이 없다고 생각했지만 버그 return 10; 가 되돌아왔습니다.
이 파일 sample2.ts 을 구축하면 정의되지 않은number 형식의 값을 되돌려줍니다. 이 때문에 구축에 실패했습니다. 그러나 sample1.ts 구축은
sample1.ts
// 想定として **return void**
private sample1() {
  return 10;
}
sample2.ts
// 想定として **return void**
private sample2() : void {
  return 10;
}
: void 검사 반환값은 void입니다.
버그 문제 등return 때 등을 위해 구상의 형식을 적극적으로 써야 한다고 생각합니다.

외부 모듈을 만들어 보세요.


다음은 외부 모듈입니다.
프로그램을 더 잘 예측하기 위해서는 파일을 기능별로 나누는 것이 좋다.이번에 나는 이렇게 스스로 모듈을 정의하여 필요한 파일을 분리하고 싶다.
제작으로 우리는 방금의MyClass 내용을 다른 모듈로 나누는 것을 고려했다.모듈ServerModule.ts을 만들고 인코딩합니다.
ServerModule.ts
import * as http from 'http';

export class ServerFunction {
  public initServer(): void {
    const server = http.createServer(
        (request: http.IncomingMessage, response: http.ServerResponse) =>
            this.requestHandler(request, response));
    server.listen('5001');
  }

  /*
   * サーバーにリクエストがあった時に実行される関数
   */
  private requestHandler(request: http.IncomingMessage,
                         response: http.ServerResponse): void {
    response.end('Hello ServerFunction Class');
  }
}
외부 파일로 가정할 때 class 이전에 export 키워드를 붙여서 정의합니다.
app.ts
import {ServerFunction} from './ServerModule';

// classを指定してクラス化
class MyClass {
    // コンストラクター
    constructor() {
        // exportしてきたServerFunctionクラスのインスタンスを作成.
        const serverFunction = new ServerFunction();
        // 関数を実行する。
        serverFunction.initServer();
    }
}

// Myclassクラスのインスタンスを作る
const myclass = new MyClass();
따라서 import {ServerFunction} from './ServerModule'; 클래스만 가져오고 사용할 준비를 하여 적절하게 실례화할 수 있다.
아래와 같이 안전하게 표시할 수 있습니다.

총결산


어쨌든 대충 썼다.이렇게 하면 타입 스크립트 가능한가요?
확실히 틀을 다 쓰는 게 귀찮은 부분도 있지만 솔직히 귀찮으면 타입 스크립트를 쓰지 않는 게 좋을 것 같아요.루트
시뮬레이터를 쓰는 장점으로 컴파일할 때 예상치 못한 내용이 검출되기 때문에 오류와 작별인사를 적극적으로 써야 한다.
내일 이후로는 학식이 있는 사람이 피드백을 해줬기 때문에ServerFunction 한번 해 보고 싶어요.이런 기분이야.저 그거 한번 해보고 싶어요. 타입 스크립트 같은 거. 끝냅시다.

선전하다.


나는 이직을 계기로 다양한 시도를 했다.

거의 매일 AWS


거의 매일 AWS
AWS의 각 솔루션에 대해 "이 솔루션은 무엇입니까?"이런 관점으로 총결해 낸 것이다.

소프트웨어 for Swift 실습 시작


소프트웨어 for Swift 실습 시작
매일 스위프트 실천 입문 서적을 읽으면서 필요에 따라 코드를 작성해 취합한다.

좋은 웹페이지 즐겨찾기