代码之家  ›  专栏  ›  技术社区  ›  Brett Zamir

我如何让支持TypeScript的自动补全功能处理JavaScript文件和@types包?

  •  0
  • Brett Zamir  · 技术社区  · 3 年前

    在寻找使用一个新的相当大的项目(Three.js)和教初学者时,我可以看到自动完成的吸引力。

    然而,对于Atom来说,即使 atom-typescript 包,我没有找到关于如何设置它的非常明确的指导(我对TypeScript语法有一些熟悉,但我自己不习惯设置它)。我希望像JavaScript的类型感知自动补全这样有用的东西,可能会有一些针对这个用例的快速入门教程,但我还没有找到任何有助于让事情正常工作的东西。

    根据 https://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html ,我希望我能跑:

    pnpm i -D @types/three

    …(使用pnpm作为我的包管理器),然后添加导入(如果THREE全局值不是由 @types/three 包装):

    import * as THREE from 'three';
    

    我也跑了 pnpm i -D typescript 推测Atom可能想要访问本地副本。

    添加a jsconfig.json 使用以下内容(在根目录中与我的其他文件和 package.json )没有帮助:

    {
      "compilerOptions": {
        "lib": ["es2015", "dom"]
      }
    }
    

    原子字体 我启用了“为JavaScript文件启用Atom TypeScript(实验性)”。我唯一的另一个名为“typescript”的包是“language typescript”(我已经禁用了“ide typescript”)。

    即使我需要设置自己的声明文件,我不应该得到错误吗?

    不过,添加我自己的声明文件似乎并没有改变任何事情。 threed.d.ts :

    declare module "threed" {
    }
    

    我预计至少会出现没有类型的错误,但不会得到任何东西。

    我还添加了以下内容 ~/.atom/init.coffee 文件按照 https://github.com/TypeStrong/atom-typescript/blob/master/docs/faq.md#i-want-to-use-atom-typescript-with-javascript-too :

    #CHANGE THE PACKAGE NAME IN THE NEXT LINE IF YOU'RE USING
    #A DIFFERENT GRAMMAR PACKAGE
    do (grammarPackageImUsing = "language-javascript") ->
      atom.packages.onDidTriggerActivationHook "#{grammarPackageImUsing}:grammar-used", ->
        atom.packages.triggerActivationHook 'language-typescript:grammar-used'
    

    …并重新启动。

    我还尝试了command-shift-P和 TypeScript: Activate 没什么。我错过了什么?

    0 回复  |  直到 3 年前