Use Cases

Deno TypeScript dengan Claude Code

Pelajari tentang deno typescript menggunakan Claude Code. Dilengkapi tips praktis dan contoh kode.

Denopengembangan dengan Claude Code: efisiensi

Deno セキュリティファーストなモダンruntime.TypeScript ネイティブサポートし、パーミッションモデル よるamanな実行環境 penyediaan.Claude Code dan 組み合わせれば、Deno 独自機能 juga 素早くpemanfaatan bisa dilakukan.

Pengaturan Awal Proyek

> Deno dengan Webaplikasi buatkan.
> Freshframework 使って、deno.json pengaturan juga して。
// deno.json
{
  "lock": false,
  "tasks": {
    "dev": "deno run -A --watch=static/,routes/ dev.ts",
    "build": "deno run -A dev.ts build",
    "start": "deno run -A main.ts",
    "test": "deno test -A --coverage=coverage",
    "lint": "deno lint",
    "fmt": "deno fmt"
  },
  "imports": {
    "$fresh/": "https://deno.land/x/[email protected]/",
    "$std/": "https://deno.land/[email protected]/",
    "preact": "https://esm.sh/[email protected]",
    "preact/": "https://esm.sh/[email protected]/"
  },
  "compilerOptions": {
    "jsx": "react-jsx",
    "jsxImportSource": "preact"
  }
}

pemanfaatan パーミッションモデル

Deno デフォルト すべて アクセス 拒否.

> file読み取り dan ネットワークアクセスだけ 許可した
> APIserver buatkan.最小izin 原則 dengan pengaturanして。
// server.ts
// 実行: deno run --allow-net=:8000 --allow-read=./data server.ts

import { serve } from "$std/http/server.ts";

const handler = async (req: Request): Promise<Response> => {
  const url = new URL(req.url);

  if (url.pathname === "/api/config") {
    const data = await Deno.readTextFile("./data/config.json");
    return new Response(data, {
      headers: { "content-type": "application/json" },
    });
  }

  if (url.pathname === "/api/items") {
    const dir = Deno.readDir("./data/items");
    const items = [];
    for await (const entry of dir) {
      if (entry.isFile && entry.name.endsWith(".json")) {
        const content = await Deno.readTextFile(
          `./data/items/${entry.name}`
        );
        items.push(JSON.parse(content));
      }
    }
    return Response.json(items);
  }

  return new Response("Not Found", { status: 404 });
};

serve(handler, { port: 8000 });

Freshでアイランドarsitektur

> Fresh アイランドkomponen dengan カウンター buatkan.
> serverサイド dan clientサイド 分離 意識して。
// routes/index.tsx
import Counter from "../islands/Counter.tsx";

export default function Home() {
  return (
    <div class="max-w-screen-md mx-auto p-4">
      <h1 class="text-4xl font-bold">Deno Fresh App</h1>
      <Counter start={0} />
    </div>
  );
}

// islands/Counter.tsx
import { useSignal } from "@preact/signals";

interface CounterProps {
  start: number;
}

export default function Counter({ start }: CounterProps) {
  const count = useSignal(start);
  return (
    <div class="flex gap-4 items-center">
      <button onClick={() => count.value--}>-</button>
      <span class="text-2xl">{count}</span>
      <button onClick={() => count.value++}>+</button>
    </div>
  );
}

testとcoverage

// server_test.ts
import { assertEquals } from "$std/assert/assert_equals.ts";

Deno.test("API health check", async () => {
  const res = await fetch("http://localhost:8000/api/config");
  assertEquals(res.status, 200);
  const data = await res.json();
  assertEquals(typeof data, "object");
});

Deno.test("file operations with permissions", async () => {
  const content = await Deno.readTextFile("./data/config.json");
  const config = JSON.parse(content);
  assertEquals(config.version !== undefined, true);
});

deploy Deno Deployへ

# Deno DeployのCLI
deno install -A jsr:@deno/deployctl

# デプロイ
deployctl deploy --project=my-app --entrypoint=main.ts

Summary

Deno セキュリティモデル dan TypeScriptネイティブサポート 、aman 快適なpengembangan体験 penyediaan.Claude Code 使えば、パーミッションpengaturanやFresh 独自pola juga efisien 習得 bisa dilakukan.TypeScriptpengembangan コツセキュリティ監査panduan juga bisa dijadikan referensi.

Untuk Denoの詳細, lihat Deno公式ドキュメント.

#Claude Code #Deno #TypeScript #runtime #security
Gratis

PDF Gratis: Cheatsheet Claude Code dalam 5 Menit

Cukup masukkan emailmu dan kami akan langsung mengirim cheatsheet PDF A4 satu halaman.

Kami menjaga data pribadimu dengan aman dan tidak pernah mengirim spam.

Masa

Tentang Penulis

Masa

Engineer yang aktif menggunakan Claude Code. Mengelola claudecode-lab.com, media teknologi 10 bahasa dengan lebih dari 2.000 halaman.