🦕

🔰Denoに入門してみた

2024/02/09に公開

Overview

https://deno.com/

Deno is the most productive, secure, and performant JavaScript runtime for the modern programmer.

Deno は、現代のプログラマーにとって最も生産性、安全性、パフォーマンスに優れた JavaScript ランタイムです。

Node.jsを開発したライアンダールさんが発明した技術みたいです。デフォルトでTypeScriptをサポートしてます。

インストールする方法ですが、私の場合はなぜか、curlでできなかったのでhomebrewを使いました。

curlはこっち:

curl -fsSL https://deno.land/install.sh | sh

homebrewはこっち:

brew install deno

summary

使い方は、PJを作成して、名前はなんでも良いので、TypeScriptのファイルを作成する。

touch index.ts

挨拶を返す例:

interface Greet {
    // ロジックを持たないメソッド
    say(): string
}

// インターフェースを実装したクラス
class GreetImpl implements Greet {
    // インターフェースで定義されたメソッドを実装
    say() {
        return 'Hello'
    }
}

// インターフェースを実装したクラスをインスタンス化
let greet: Greet = new GreetImpl()
console.log(greet.say()) // Hello

実行するときは、ターミナルで、deno run [ファイル名]を実行する

deno run index.ts

実行結果:

Promiseを使った例:

/*
void型のPromiseを返す関数を定義して、
setTimeout関数を使って指定した時間後にresolveするようにしています。
*/
function delay(ms: number): Promise<void> {
    return new Promise((resolve) => {
        setTimeout(resolve, ms);
    });
}

// この関数を使って、2秒後に処理を実行するPromiseを作成しています。
delay(2000)
    .then(() => {
        console.log("2秒後に処理を実行!");
    })
    .catch((error) => {
        console.error("An error occurred:", error);
    });

実行結果:

async/awaitで書いた例:

// async/awaitで書いた例
async function delay(ms: number): Promise<void> {
  await new Promise((resolve) => {
    setTimeout(resolve, ms);
  });
}

// この関数を使って、2秒後に処理を実行するPromiseを作成しています。
(async () => {
  try {
    await delay(2000);
    console.log("2秒後に処理を実行!");
  } catch (error) {
    console.error("An error occurred:", error);
  }
})();

Objectをjsonに、jsonをObjectに変換する処理:

interface Person {
  name: string;
  age: number;
}

// オブジェクトを作成
let person: Person = {
  name: "John",
  age: 30,
};

// オブジェクトの値をjsonに変換
let json = JSON.stringify(person);
console.log(json);

// jsonをオブジェクトに変換
let obj = JSON.parse(json);
console.log(obj);

実行結果:

fetchメソッドがあり🛜インターネットのデータを取得できるようだ。
https://deno-ja.vercel.app/manual@v1.9.1/examples/fetch_data

const jsonplaceholder = fetch('https://jsonplaceholder.typicode.com/posts/1')
// response.jsonで、jsonをobjectに変換する
    .then(response => response.json())
    .then(json => console.log(json));

実行結果:
yを選ばないといけない。yesってことか。

JSONのデータをObjectに変換して表示された。

thoughts

今回は、Node.jsに変わるランタイムを使ってみました。私は、昔ランチタイムと呼んでたけど笑。ランチタイムエラーとか呼んでたような笑

Denoみなさんも使ってみてください!

ランタイムとは ランタイムとは、アプリケーションの開発・実行の両方の機能を備えたソフトウェアから、開発の機能を省き、実効の機能のみを取り出したプログラムのことである。 ランタイムは、アプリケーションを実行するために必要な単体プログラムのほか、開発ツールを用いて開発したファイル群を意味することもある。

Discussion