TypeScript

Contents

環境構築

deno

通常TypeScriptはコンパイルしてJavaScriptに変換する必要があるが、サーバサイドでの実行であればdeno実行環境により、明示的にコンパイルしなくても自動でコンパイルしてくれるので、TypeScriptのまま実行できる。

マニュアル:https://deno-ja.vercel.app/manual

  1. インストール
    curl -fsSL https://deno.land/x/install/install.sh | sh
  2. インストールディレクトリへの移動
    mv .deno /usr/local/deno
  3. パスを設定する
    export DENO_HOME=/usr/local/deno
    export PATH=$DENO_HOME/bin:$PATH
  4. 環境変数を再起動後も有効にする
    echo "" >> /etc/bashrc
    echo "# DENO ENVIRONMENT VARIABLE" >> /etc/bashrc
    echo "export DENO_HOME=$DENO_HOME" >> /etc/bashrc
    echo "export PATH=\$DENO_HOME/bin:\$PATH" >> /etc/bashrc
  5. 実行確認
    deno --help

 

基本文法

Hello World

console.log("Welcome to Deno!");

 

クラスを使ったサンプル

class MyClass {
        ONE_STR: "ONE"="ONE";
        message: string;
        num: number;
        showMessage: boolean;

        constructor(m: string, n: number, s: boolean) {
                this.message = m;
                this.num = n;
                this.showMessage = s;
        }


        printMessageOrNum(): void {
                console.log(this.ONE_STR+"_"+(this.showMessage?this.message:this.num));
        }

        getMessageAdd(plus: string): string {
                return this.message+plus;
        }
}

const myObj1:MyClass = new MyClass("abc", 10, true);
myObj1.printMessageOrNum();
myObj1.showMessage=false;
myObj1.printMessageOrNum();
console.log(myObj1.ONE_STR+"_"+myObj1.getMessageAdd("def"));

 

実行結果

[root@xxx ~]# deno run typescript_test.ts
ONE_abc
ONE_10
ONE_abcdef

 

コメント

 

 

変数

共通単値変数

 

 

 

 

プリミティブ型

 

真偽値

true
false

 

順序配列

 

 

 

 

 

 

 

 

 

 

連想配列

 

 

 

 

 

 

 

集合(Set)

 

 

 

比較演算

 

一致(数値・文字列)

int1 == int2

 

不一致(数値・文字列)

int1 != int2

 

数値大小

int1 < int2

 

int1 <= int2

int1 > int2

 

int1 >= int2

 

正規表現一致

 

 

 

OR

int1 == int2 or int3 != int4

 

AND

int1 == int2 && int3 != int4

 

NOT

int1 != int2

 

制御構文

for

for(let i=0;i<5;i++) {
    console.log(i);
    # 0-4
}

 

for each

 

while

let i=0;
while(i < 10) {
    console.log(i);
    i+=1;
}

 

break

break

 

continue

continue

 

if

if(x < 0)
    console.log("x < 0");

 

if else

if(x < 0)
    console.log("x < 0");
else if(x == 0)
    console.log("x == 0");
else
    console.log("x > 0");

 

三項演算

val = n > 10 ? "big" : "small";

 

switch case

switch (str) {
case "A":
console.log("A");
break;
case "B":
console.log("B");
break;
default:
console.log("AB");
break;
}

文字列操作



連結

str1+str2

 

部分切り取り

end-1文字目までが取得できる。endを省略すると末尾までとなる。

str.substring(start, end);

 

置換

"abcdef".replace(/bcd/i, "BBB");

 

探索(indexOf)

"abcde".indexOf("d")
#3

 

外部ファイルへコードの分割

インポート

エクスポートした関数や型、値等は別ファイルでインポートして利用する。標準では下記の様に対象ファイル名を相対パスで指定してインポートする

import { functionA } from '../lib/MyLibA.ts';

ただし相対パスではファイルパスが変わるたびに変更箇所が多くなる。そのため、tsconfig.jsonファイルに設定を追加することで絶対パスとして指定できる。

import { functionA } from 'lib/MyLibA.ts';

tsconfig.jsonには以下の様に記述する。

{
"compilerOptions": {
"baseUrl": "src"
}
}

Notice: Trying to get property 'queue' of non-object in /usr/local/wordpress/wp-includes/script-loader.php on line 2876

Warning: Invalid argument supplied for foreach() in /usr/local/wordpress/wp-includes/script-loader.php on line 2876