Visual studio code VS代码类型脚本intellisense无法正确读取键入

Visual studio code VS代码类型脚本intellisense无法正确读取键入,visual-studio-code,typescript-typings,Visual Studio Code,Typescript Typings,我已经从npm和安装在我的Ionic 3项目中,但我没有获得正确的intellisense,请看: VS代码:1.12.2 打字稿:2.3.3 在我的打字文件夹中,我有: 打字 全球的 pdf 索引d.ts 我的tsconfig.json说: { "compilerOptions": { "allowSyntheticDefaultImports": true, "declaration": false, "emitDecoratorMetadata":

我已经从npm和安装在我的Ionic 3项目中,但我没有获得正确的intellisense,请看:

VS代码:1.12.2 打字稿:2.3.3

在我的打字文件夹中,我有:

  • 打字
    • 全球的
      • pdf
        • 索引d.ts
我的tsconfig.json说:

{
"compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [
      "dom",
      "es2015"
    ],
    "module": "es2015",
    "moduleResolution": "node",
    "sourceMap": true,
    "target": "es5",
    "allowJs": true
  },
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ],
  "compileOnSave": false,
  "atom": {
    "rewriteTsconfig": false
  }
}
我的依赖项是:

"dependencies": {
        "@angular/common": "4.1.2",
        "@angular/compiler": "4.1.2",
        "@angular/compiler-cli": "4.1.2",
        "@angular/core": "4.1.2",
        "@angular/forms": "4.1.2",
        "@angular/http": "4.1.2",
        "@angular/platform-browser": "4.1.2",
        "@angular/platform-browser-dynamic": "4.1.2",
        "@ionic-native/core": "3.10.2",
        "@ionic-native/splash-screen": "3.10.2",
        "@ionic-native/status-bar": "3.10.2",
        "@ionic/storage": "2.0.1",
        "@types/pdf": "0.0.31",
        "cordova-android": "^6.2.3",
        "cordova-ios": "^4.4.0",
        "cordova-plugin-console": "^1.0.5",
        "cordova-plugin-device": "^1.1.4",
        "cordova-plugin-splashscreen": "^4.0.3",
        "cordova-plugin-statusbar": "^2.2.2",
        "cordova-plugin-whitelist": "^1.3.1",
        "ionic-angular": "3.3.0",
        "ionic-plugin-keyboard": "^2.2.1",
        "ionicons": "3.0.0",
        "pdfjs-dist": "^1.8.428",
        "rxjs": "5.1.1",
        "sw-toolbox": "3.6.0",
        "zone.js": "0.8.11"
    },
    "devDependencies": {
        "@ionic/app-scripts": "1.3.7",
        "@ionic/cli-plugin-cordova": "1.3.0",
        "@ionic/cli-plugin-ionic-angular": "1.3.0",
        "typescript": "2.3.3"
    },
我在这里查看了其他问题,但没有找到解决方案

编辑: 我添加了更新的包含dt typings
“typings/***/.d.ts”
路径的include,编译时出现以下警告:

typescript:node_modules/@types/pdf/index.d.ts,第51行 重复的字符串索引签名

L51:*用于标识PDF的唯一ID。不保证是唯一的。[贾巴尔德温:哈哈什么]

L52:**/

这就告诉我,这些类型不是从
typings/**
读取的,而是从
node\u modules/@types/
读取的。我看了一下,发现两个
index.d.ts
文件完全相同,所以我卸载了节点外部的打字

经过一段时间的研究,我对我的问题有两个主要的理论。 1.我不知道我在做什么(很可能) 2.打字错误和/或过时

我发现了一个
PDFJSStatic
界面,它在我的屏幕截图中包含了“untellissensed”方法,该方法在typings中导出。如果我这样做:

import * as PDF_JS  from 'pdfjs-dist';
let pdfjsLib : PDFJSStatic = PDF_JS;
我终于得到了关于
getDocument()
方法的信息,但是很多其他函数都被破坏了

如果我将PDFJSStatic作为自己的变量:

var PDFJSStatic : PDFJSStatic = pdfjsLib.PDF;

intellisense可以工作,但显然功能不存在。

打字文件是否包含在src目录下?还可以尝试更新您的
include
以包括d.ts文件。因为您是手动管理打字,所以必须将它们明确地包含在tsconfig项目中谢谢@MattBierner,我已经尝试过了,但是没有成功,但是发生了一些有趣的事情。看看我的更新。是的,一个库不能同时有
dt
打字和
@types
打字。尝试切换到使用
@types
,这是现在管理打字文件的推荐方法。在您的情况下,intellisense不会自动工作,因为您使用的是
pdfjs dist
,但为
@types/pdf
安装了打字功能。我们不会将来自
pdf
的打字与
pdfjs dist
相关联。也许打字文件过时了/坏了?@MattBierner再次感谢。我已经从dt卸载了打字,只保留了
@types
。但是,是的,我认为这两种类型都过时了,因为这一次我获得了一些东西的智能感知,比如一些接口,但是像
renderTextLayer
这样的函数甚至不存在于
d.ts
文件中。