Visual studio code VS代码类型脚本intellisense无法正确读取键入
我已经从npm和安装在我的Ionic 3项目中,但我没有获得正确的intellisense,请看: VS代码:1.12.2 打字稿:2.3.3 在我的打字文件夹中,我有: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":
- 打字
- 全球的
- pdf
- 索引d.ts
- pdf
- 全球的
{
"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
文件中。