简化 JavaScript
interface Person {
name: string;
age: number;
}
function greet(person: Person): string {
return "Hello, " + person.name + "!";
}
const alice: Person = {
name: "Alice",
age: 36
};
console.log(greet(alice));
内置的现代语言功能
Skip past APIs listWorkerMessageEventWritableStreamDefaultControllerstructuredCloneDecompressionStreamCompressionStreamsetIntervalPromiseRejectionEventclearIntervalBlobfetchbtoalocalStorageNavigatorclearTimeoutReadableStreamDefaultControllerResponse.json()EventTargetcachesCacheStorageMessagePortLocationDedicatedWorkerGlobalScopeWebSocketqueueMicrotaskCryptoKeyErrorEventPerformanceMarkWorkerNavigatorReadableStreamBYOBRequestTextDecoderWorkerLocationTextEncoderStreamReadableByteStreamControllerTransformStreamFileCustomEventEventperformanceDOMExceptionReadableStreamBYOBReadercryptoCloseEventURLPatternPerformanceEntryconsolewindow.close()CryptoRequestReadableStreamStorageWebAssemblyTextDecoderStreamURLSearchParamsProgressEventFileReaderByteLengthQueuingStrategyBeforeUnloadEventTextEncoderatobwindow.alert()setTimeoutPerformanceHeadersWorkerGlobalScopeAbortSignalFormDataResponseMessageChannelURLBroadcastChannelWindowTransformStreamDefaultControllerSubtleCryptoCacheWritableStreamAbortControllerReadableStreamDefaultReaderPerformanceMeasureWritableStreamDefaultWriter
内置功能
构建、测试和部署应用程序所需的基本工具都包含在内。
独立可执行文件
Deno.serve(req => new Response("Hello!"));
$ deno compile --allow-net server.ts
$ ./server
Listening on http://localhost:8000/
从您的 Deno 程序立即创建独立的可执行文件。它甚至支持为其他平台交叉编译!
了解更多测试运行器
$ deno test main_test.ts
Deno.test("1 + 2 = 3", () => {
const x = 1 + 2;
console.assert(x == 3);
});
Deno 提供测试运行器和断言库作为运行时和标准库的一部分。
了解更多代码格式化程序
$ deno fmt --line-width=120
Deno 的内置代码格式化程序(基于 dprint)美化 JavaScript、TypeScript、JSON 和 Markdown。
了解更多默认情况下安全
使用 Deno 运行的程序除非明确启用,否则没有文件、网络或环境访问权限。
server.ts
import express from "npm:express@4";
const app = express();
app.get("/", function (_req, res) {
res.send("hello");
});
app.listen(3000, () => {
console.log("Express listening on :3000");
});
$ deno run --allow-net --allow-read --allow-env server.js
server.ts
Deno.serve(req => new Response("Hello world"));
越大越好
吞吐量,每秒请求数
200059
95879
Deno
Node
为云而生
无论您使用我们闪电般快速的 Deno Deploy 部署还是在其他云提供商上部署,Deno 都能简化您的体验。
Deno 运行在
Deno KV 的无缝持久性
Deno 运行时附带 Deno KV,这是一个专为全球分布式应用程序设计的键值数据库。
从开发到生产,在 Deno Deploy 上无需配置 API 密钥或基础设施。
最 新 的网页框架
Fresh 是一个为 Deno 打造的服务器端渲染网页框架,使用 Preact 构建,以实现极速的速度和即时生产力。
快速构建快速网站
将路由编写为您已经熟悉和喜爱的 TSX 组件,Fresh 默认情况下会处理动态服务器端渲染。
/routes/index.tsx
export default function HomePage() {
return (
<div>
<h1>HTML fresh from the server!</h1>
<p>
Delivered at
{new Date().toLocaleTimeString()}
</p>
</div>
);
}
/islands/Counter.tsx
import { useSignal } from "@preact/signals";
export default function Counter() {
const count = useSignal<number>(0);
return (
<button onClick={() => count.value += 1}>
The count is {count.value}
</button>
);
}
减少 JavaScript 代码量
基于岛屿的架构让您可以选择仅使用所需的 JavaScript 代码,从而实现绝对最小的运行时开销。