前提
・nodeがインストールされている
・TypeScriptがグローバルインストールされている
フォルダ構成
MY-PROJECT
├─ sample.ts
├─ tsconfig.json
└─ .vscode
├─ launch.json
├─ settings.json
└─ tasks.json
tsconfig.json
{
//コンパイルオプション
"compilerOptions": {
//厳格なチェックを行う(省略値はfalse)
"strict": true,
//暗黙のany型の使用を許可したい時falseとする(strict=trueの時の省略値はtrueのため)
"noImplicitAny": true,
//JavaScriptファイルを作成しない(コンパイルチェックのみ行いたい時true)
"noEmit": true
}
}
launch.json
{
"version": "0.2.0",
"configurations": [
{
//debugの名称(任意)デバッグ開始ボタンのプルダウンメニューの選択肢に表示される
"name": "Deno",
"type": "pwa-node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "deno",
"runtimeArgs": ["run", "--unstable", "--inspect-brk", "-A", "${file}"],
//tasks.jsonで定義したtaskにリンクする
//デバッグ実行時のコンパイルチェックが重いときはコメントアウト
//そのかわりコンパイルチェックは自前でコマンドラインでtscコマンドで実行する
"preLaunchTask": "Compile TypeScript",
"attachSimplePort": 9229
}
]
}
settings.json
{
"deno.enable": true,
"deno.lint": true,
"deno.unstable": true
}
tasks.json
{
"version": "2.0.0",
"tasks": [
{
//taskの名称(任意)launch.jsonなどからこの名称を使ってリンクさせる
"label": "Compile TypeScript",
"type": "shell",
"command": "tsc",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
sample.ts
const keyArray = ["a", "b", "c", "d", "e"];
const valueArray = [1, 2, 3, 4, 5];
const json: any = {}; //"noImplicitAny": false とすればanyは省略可能
valueArray.forEach((item, index) => {
json[keyArray[index]] = item;
});
console.log(json); //{a: 1, b: 2, c: 3, d: 4, e: 5}