ian*_*n.c 5 javascript typescript visual-studio-code
我已经尝试了很多年,但无论我做什么,我似乎无法让Visual Studio Code intellisense超越单个文件的打字稿.这是在Windows和Ubuntu上.
我已经包含了一个tsconfig.json文件,但它在项目规模上仍然没有任何智能感知.
我目前的测试项目包含以下内容:
tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"out": "test.js"
},
"files": [
"test2.ts",
"tester.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
tasks.json:
{
"version": "0.1.0",
"command": "tsc",
"showOutput": "always",
"windows": {
"command": "tsc.exe"
},
"args": ["-p", "."],
"problemMatcher": "$tsc"
}
Run Code Online (Sandbox Code Playgroud)
test2.ts:
module test
{
export class test2
{
}
}
Run Code Online (Sandbox Code Playgroud)
tester.ts:
module test
{
export class tester
{
public testy: test2;
}
}
Run Code Online (Sandbox Code Playgroud)
在类测试器中,即使我将其更改为test.test2,也不会被intellisense拾取test2.向test2添加变量也无济于事.
有谁知道为什么它根本不起作用的任何可能的原因?
Suj*_*rni 14
就我而言,我必须在打字稿的 VSCode 版本上选择工作空间版本。
单击底部蓝带中的版本号
并在顶部栏中出现的选项中选择工作空间版本
希望有帮助。
这是因为你告诉编译器你正在使用外部模块:
"module": "commonjs",
Run Code Online (Sandbox Code Playgroud)
但您实际上是在尝试使用内部模块:
module test
Run Code Online (Sandbox Code Playgroud)
最好选择一种方式或另一种方式.
如果您使用的是外部模块 - 请使用:
test2.ts
export class test2 {
}
Run Code Online (Sandbox Code Playgroud)
tester.ts
import ModuleAlias = require('test2');
export class tester {
public testy: ModuleAlias.test2;
}
Run Code Online (Sandbox Code Playgroud)
如果您不使用外部模块,则可以使用原始代码,但删除"module": "commonjs"
标志.
{
"compilerOptions": {
"out": "test.js"
},
"files": [
"test2.ts",
"tester.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11174 次 |
最近记录: |