Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 如何在Deno中拉式打字_Typescript_Visual Studio Code_Deno - Fatal编程技术网

Typescript 如何在Deno中拉式打字

Typescript 如何在Deno中拉式打字,typescript,visual-studio-code,deno,Typescript,Visual Studio Code,Deno,我正在查看Deno,发现其中一个入门示例非常优雅: import { serve } from "https://deno.land/x/std@v0.2.10/http/server.ts"; const s = serve("0.0.0.0:8000"); void async function main() { for await (const req of s) { req.respond({ body: new TextEncoder().encode("Hello W

我正在查看Deno,发现其中一个入门示例非常优雅:

import { serve } from "https://deno.land/x/std@v0.2.10/http/server.ts";
const s = serve("0.0.0.0:8000");

void async function main() {
  for await (const req of s) {
     req.respond({ body: new TextEncoder().encode("Hello World\n") });
  }
}()
我正在使用VS代码编写Deno脚本,但我不确定如何让编辑器知道导入函数的类型,例如service。我认为现在使用Deno支持IDE可能还为时过早,但如果有解决方案或解决方法,我想了解一下

我需要安装
@types
软件包或类似的东西吗<代码>导入或
引用
一些
.d.ts
声明文件?在使用本例中的service函数以及通常在Deno中导入的任何脚本时,如何使VS代码提供代码完成建议和显示类型注释?

更新:效果相当好

以下是当前的解决方案:

  • 添加到您的工作区。编辑
    tsconfig.json
    并将
    http
    https
    导入的路径替换为远程依赖项的本地缓存位置(通常位于
    $HOME/.deno/deps/http
    $HOME/.deno/deps/https
  • 创建一个
    typings/
    文件夹。运行
    deno--types>typings/deno.d.ts
    。Deno将为核心API输出一个类型定义文件
  • 现在的问题是,VS代码在导入时不知道如何获取远程依赖项。为了解决这个问题,一旦您添加了一个新的远程
    import
    ,运行
    deno--prefetch您的_文件.ts
    ,以下拉所有依赖项。为了使事情更简单,我建议将所有远程依赖项保存在一个文件
    deps.ts
    (并在此文件上运行
    --prefetch
    ),然后重新导出内容,以便项目中的其他文件可以使用deps
  • 太长,读不下去了 安装扩展插件1。然后在一个特定的项目中,比如

    /.vscode/settings.json
    {
      "deno.enable": true, // enables extension
      "deno.lint": true, // inline deno lint diagnostics, requires `deno.unstable`
      "deno.unstable": true // also provides unstable type declarations in VS Code
    }
    
    从开始,您还可以使用向导2:

    要集成TS工作区版本而不是VS代码内置版本,请查看

    1已弃用。
    2注意:在新的空项目中,在向导正常工作之前,至少需要存在一个源文件


    更多细节 分机是做什么的?
    • 允许在VS代码中显式扩展
      .ts
    • 解析URL导入说明符,如
      “https://deno.land/std@0.56.0/http/server.ts“
    • 集成Deno运行时类型(例如,
      Deno.writeFile
    如何解析
    .ts
    模块的类型 使用上述扩展名,VS代码允许导入的文件扩展名为.ts,并将URL导入解析为。编译器可以使用这些缓存的类型定义进行检查。最后,获取所有源并重新启动TS服务器/重新加载VS代码:

    deno缓存https://deno.land/std/http/server.ts #从URL获取和编译
    #或主项目文件
    deno cache.ts#获取其所有依赖项
    
    server.ts
    是的一部分,它只是远程
    .ts
    模块的一个更严格维护的集合,因此它也将被正确键入

    如何解析
    .js
    模块的类型 Deno为
    .js
    文件提供了参考
    .d.ts
    文件

    在导入代码位置指定类型定义:
    // @deno-types="./foo.d.ts"
    import * as foo from "./foo.js";
    
    /// <reference types="./foo.d.ts" />
    export const foo = "foo";
    
    在主机代码位置指定类型定义:
    // @deno-types="./foo.d.ts"
    import * as foo from "./foo.js";
    
    /// <reference types="./foo.d.ts" />
    export const foo = "foo";
    
    Include选项,因此VS代码和Deno CLI具有相同的编译器设置:
    deno run -c ./tsconfig.json main.ts 
    
    如何使用类型 最简单的选项是在
    settings.json中设置()并重新启动VS代码,请参阅
    tldr
    部分

    人工替代
    cd
    deno类型——不稳定>deno.runtime.d.ts
    触摸tsconfig.json#(1);JS项目的jsconfig.json也是可能的
    
    VS Codedeno.runtime.d.ts与存在的tsconfig.json(1)


    突破性变化
    vscode-deno
    v1.26.0 扩展需要通过项目的
    .vscode/settings.json
    中的
    “deno.enable”:true
    (默认值为
    false
    )。在此之前,默认值为
    true

    vscode-deno
    <1.25.0
    在每种情况下安装Deno类型(稳定和不稳定)-请参见
    “如何使用--不稳定类型”

    了解不稳定api,在执行上述操作后,执行命令
    Deno类型--不稳定>lib/Deno_runtime.unstable.d.ts