2017-08-29 25 views
3

是否可以將類型信息提供給VS代碼linter for JavaScript文件?我有一個JavaScript文件和一個.d.ts文件,我想用這個.d.ts文件解析JavaScript文件的類型錯誤。那可能嗎?如果在VS Code中無法直接使用,是否可以使用其他工具?Visual Studio代碼 - JavaScript文件的類型提示

要添加一個例子:

// file.d.ts 
declare function f(x: number): number; 

// file.js 
function f(x) { return x * 2; } 
f('Not a number'); // This should be an error 
+0

@mplungjan也許我在這個問題上不夠精確,但我的意思是,我不打算在TypeScript項目中使用這個JavaScript文件。我將修改這個JavaScript文件,但是如果可能的話,我想對它進行類型檢查,因爲我有一個'.d.ts'文件。我應該編輯更精確的問題嗎? –

+0

這可能是有用的 - 雖然那些知道.d.ts文件是什麼(打字稿定義?)的人可能知道你在問什麼 – mplungjan

回答

2

一般情況下,你要創建一個jsconfig.json file在你的項目的根目錄與內容:

{ 
    "compilerOptions": {}, 
    "exclude": [ 
     "node_modules" 
    ] 
} 

該文件告訴VS守則將所有js文件(和d.ts文件)視爲同一項目的一部分。

但是,TypeScript似乎並未將d.ts文件中的f類型聲明與js文件中的實際聲明f合併。如果您註釋掉實現,你會得到正確的類型f和預期的錯誤:

// @ts-check 

//function f(x) { return x * 2; } 

f('Not a number'); // This is an error 

但除此之外,f具有類型function(x: any): number

這似乎是意外,我和我開了一個新的問題跟蹤此:https://github.com/Microsoft/TypeScript/issues


另外,如果你只在JavaScript中工作,你總是可以使用jsdoc評論添加類型信息:

// @ts-check 

/** 
* @param {number} x 
* @return {number} 
*/ 
function f(x) { return x * 2; } 

f('Not a number'); // This is an error