2
我開始了一個項目,以瞭解外部加載類型如何與Typescript編程配合使用。所以我從一個導入JsSHA的ts文件開始,下面是我用來測試這個庫工作的代碼。即使在添加類型定義文件之後,即使在VS代碼中,Typescript Intellisense也不起作用
import * as jsSHA from "jssha";
class sha{
shaObj: any;
hash : string;
constructor(){
this.shaObj = new jsSHA("SHA-512","TEXT");
this.shaObj.update("This is a test object");
this.hash = this.shaObj.getHash("HEX");
}
}
var s:sha = new sha();
console.log(s.hash);
除了通過NPM添加JsSha.js我還添加了基於什麼說here這個庫的類型定義(.d.ts)。儘管如此,我仍然沒有得到任何與JsSha對象或這個庫的構造方法有關的intellisense。我在這裏錯過了一些我應該做的事情,以便讓事情順利進行。
PS:我重新啓動VS代碼,以防萬一以避免任何問題由於緩存。還更新了所有有更新的現有軟件包。
我使用TS在2.1.6,這裏是我的依賴和devdependencies從我的package.json文件:
"dependencies": {
"jssha": "^2.2.0",
"retyped-jssha-tsd-ambient": "0.0.0-0",
"typescript": "^2.1.6",
"typings": "^2.1.0"
},
"devDependencies": {
"retyped-jssha-tsd-ambient": "0.0.0-0"
}
您是否嘗試過 「分型安裝DT〜jssha」? –
你在package.json中安裝了兩次聲明,這肯定是一個潛在的問題。此外,看起來你使用的是打字,如果你已經安裝了包裝,並且可能與npm中安裝的版本衝突。 repo中的package.json文件既沒有「main」入口點屬性也沒有「typings」屬性。缺少這些屬性,再加上版本庫沒有以模塊命名,並且聲明文件沒有命名爲「index」,這可能會阻止它被TypeScript自動發現。 –
我將添加到聲明中文件本身非常古老,並沒有遵循現代實踐(它無條件地污染全球命名空間)。任何不運行'npm install --save @ types/jssha'的理由? –