May 20, 2020
in
Dev
在 Deno 里使用 JavaScript
如果你在 TypeScript 中使用 JS 的话,TypeScript 会自动推导类型,而很多时候会产生错误的类型,比如:
function sort(arr, options) {
options = Object.assign({ reverse: true }, options)
return options.reverse ?
arr.sort().reverse() :
arr.sort()
}
TypeScript 会把这里的两个参数都当做必需的,而事实上 options
并不是。
如果是本地模块,你可以用 JSDoc 或者 d.ts
来给 JS 加上类型,而如果是 import
外部模块,你就得用 @deno-types
这个 directive 来指定相关的 d.ts
文件:
// @deno-types="https://unpkg.com/cac@9.5.8/mod.d.ts"
import { cac } from 'https://unpkg.com/cac@9.5.8/mod.js'
这对于你复用 npm 上已有的又不依赖 Node.js API 的模块很方便,不过值得注意的是,Deno 的 VSCode 插件暂时还不支持这一 directive 的使用,而 Deno CLI 编译是完全没问题的。
另外我推荐 pika.dev,你可以在上面搜索到很多支持 ES Module 的 npm 模块。