您可以使用 JavaScript 编写自己的代码。
假设您拥有或正在使用 TypeScript 文件/模块numbers.ts
:
export function isEven(n: number): boolean {
if (n % 2 != 0) {
return false
}
return true;
}
app.js
您可以使用JavaScript 脚本导入并运行它:
import { isEven } from "./module.ts";
const one = isEven(1)
const two = isEven(2)
console.log(one)
console.log(two)
Deno 在内部将 TypeScript 转换为 JavaScript。使用标准或第 3 方库时,该过程是相同的。Deno 项目的人们更进一步,将其添加为目标:
https://deno.land/manual/introduction
浏览器兼容:完全用 JavaScript 编写且不使用全局 Deno 命名空间(或对其进行功能测试)的 Deno 程序子集,也应该能够在现代 Web 浏览器中运行而无需更改。
名称解析必须是完全限定的。在这个使用 TypeScript 的专用页面中有更多关于引用类型定义的内容:
https://deno.land/manual/getting_started/typescript
Deno 在运行时支持 JavaScript 和 TypeScript 作为第一类语言。这意味着它需要完全限定的模块名称,包括扩展名(或提供正确媒体类型的服务器)
例子:
import { config } from "https://deno.land/x/dotenv/mod.ts";
按照上面的示例,您可以使用该bundle
命令生成包含所有依赖项的单个 JavaScript 文件。捆绑它会占用我的app.js
和module.ts
文件并创建一个新文件app.bundle.js
,它是 JavaScript。
https://deno.land/manual/tools/bundler
$ deno bundle app.js app.bundle.js
Bundling file:///home/pomatti/projects/deno-sandbox/app.js
Emitting bundle to "app.bundle.js"
3111 bytes emmited.
$ deno run app.bundle.js
false
true
它甚至可以在浏览器中加载:
捆绑包也可以在 Web 浏览器中加载。bundle 是一个自包含的 ES 模块,所以 type 的属性必须设置为“module”。例如:
<script type="module" src="website.bundle.js"></script>
至于 ECMAScript 模块,我想指出 TypeScript 也实现了它。
https://github.com/microsoft/TypeScript/issues/2242
https://www.staging-typescript.org/docs/handbook/modules.html
从 ECMAScript 2015 开始,JavaScript 有了模块的概念。TypeScript 共享这个概念。
现在,“静态类型”讨论超出了本论坛的范围,所以我不会在这里触及它,但我相信我涵盖了其他所有内容。