2017-02-11 20 views
2

Я начал проект, чтобы понять, как внешние загружаемые типы работают с программированием на машинописных языках. Поэтому я начал с файла ts, который импортирует JsSHA, а следующий - это код, который я использую для проверки работы этой библиотеки.TypScript Intellisense не работает даже в VS-коде даже после добавления файлов определения типов

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); 

В дополнение к добавлению JsSha.js через НПМ Я также добавил тип определения (.d.ts) этой библиотеки на основе того, что сказано here. Несмотря на все это, я до сих пор не получаю никакого intellisense, связанного с объектом JsSha или методом конструктора этой библиотеки. Я что-то упустил здесь, что должен сделать, чтобы все получилось.

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" 
} 
+0

Вы пробовали "типизации установить дт ~ jssha"? –

+1

У вас есть объявления, установленные дважды в package.json, что, безусловно, является потенциальной проблемой. Кроме того, по-видимому, вы используете типизацию, если вы также установили пакет с типизиями, которые могут конфликтовать с версиями, установленными в npm. Файл package.json в репо не имеет никакого свойства '' main ''entry entry или свойства' 'typings' '. Отсутствие этих свойств в сочетании с тем, что репозиторий не назван в честь модуля и что файл декларации не назван «индексом», скорее всего, предотвратит его автоматическое обнаружение с помощью TypeScript –

+1

. Я добавлю к объявлению сам файл очень старый и не соответствует современным методам (он безоговорочно загрязняет глобальное пространство имен). Любая причина не просто запускать npm install --save @ types/jssha'? –

ответ

1

Следующие настройки обеспечивает IntelliSense на моей машине. Он извлекает файлы декларации из NPM, который равен the future of declaration files.

{ 
    "name": "temp", 
    "version": "0.0.0", 
    "dependencies": { 
    "jssha": "^2.2.0", 
    "typescript": "^2.1.6" 
    }, 
    "devDependencies": { 
    "@types/jssha": "0.0.29" 
    } 
} 

Demonstration of the jsSHA intellisense working.