TypeScript without the hassle: Write type-safe code without complex build systems or external dependencies.
// Use .ts files with no compile step:import type { Person } from "./types.ts";import { Permissions } from "./permissions.ts";// Author TypeScript with zero setup or configuration:export interface User extends Person { id: number; permissions: Permissions[];}
2. Native support for JSX and TSX: Write code that generates HTML using modern JSX and TSX syntax.
/** @jsx jsx */import { Hono } from "$hono/mod.ts";import { jsx } from "$hono/middleware.ts";const app = new Hono();app.get("/", (c) => { return c.html( <html> <body> <h1>Hello, world!</h1> </body> </html> );});
3. Bleeding edge ECMAScript features: Write the JavaScript of tomorrow, today! ESNext features like the Temporal API land in Deno first.
You can configure Deno using a deno.json file. This file can be used to configure the TypeScript compiler, linter, formatter, and other Deno tools.
The configuration file supports .json and .jsonc extensions.
Deno will automatically detect a deno.json or deno.jsonc configuration file if it's in your current working directory or parent directories. The --config flag can be used to specify a different configuration file.
The "imports" field in your deno.json allows you to specify dependencies used in your project. You can use it to map bare specifiers to URLs or file paths making it easier to manage dependencies and module resolution in your applications.
For example, if you want to use the assert module from the standard library in your project, you could use this import map: