首页 > 解决方案 > 如何使用 JavaScript 文件和 `@types` 包获得 TypeScript 感知自动完成功能?

问题描述

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

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

根据https://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html,我希望我应该能够运行:

pnpm i -D @types/three

...(使用 pnpm 作为我的包管理器)然后添加导入(如果包未定义三个全局@types/three):

import * as THREE from 'three';

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

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

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

atom-typescript我启用了“为 JavaScript 文件启用 Atom-TypeScript(实验性)”。我拥有的唯一一个名称中带有“typescript”的包是“language-typescript”(并且我已经禁用了“ide-typescript”)。

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

添加我自己的声明文件似乎并没有改变任何东西。threed.d.ts

declare module "threed" {
}

我希望至少会出现关于没有类型但没有得到任何东西的错误。

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

#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. 没有什么。我错过了什么?

标签: javascripttypescriptatom-editor

解决方案


推荐阅读