我遵循pre-fetch example from the Typeahead site,但我正在使用Typescript。Twitter Typeahead - 打字稿中的Bloodhound錯誤
我拉了typeahead.d.ts file,沒關係,直到我嘗試使用Bloodhound實例作爲數據集源。
的例子是這樣的:
var countries = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
// url points to a json file that contains an array of country names, see
// https://github.com/twitter/typeahead.js/blob/gh-pages/data/countries.json
prefetch: '../data/countries.json'
});
// passing in `null` for the `options` arguments will result in the default
// options being used
$('#prefetch .typeahead').typeahead(null, {
name: 'countries',
source: countries
});
所以我翻譯成打字稿看起來是這樣的:
// typeahead for the employees box
var emps = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: { url: prefetchUrl }
});
$("#employee").typeahead(null, {
name: "emps",
source: emps
});
要麼我已經翻譯了JS錯誤或d.ts文件是錯誤的,因爲發生以下錯誤:
類型'{name:string;來源:Bloodhound < {}>; }'不能分配給'Dataset'類型的參數。
屬性「來源」的類型不兼容。 (查詢:字符串,cb:(結果:任何)=>無效)=>無效'。'}不可分配給類型'(查詢:字符串,cb:(結果:任何)=>無效)=>無效'。
任何人都可以告訴我我做錯了什麼或我需要在d.ts文件中修改以獲得此編譯?
由此創建的JavaScript實際上正常工作,但Typescript錯誤阻止了我的項目建立。
乾杯。
我很想更新d.ts文件,但我以前從未編寫過一個。我嘗試了一些調整,但只是打破了:(時間做一些閱讀也許。 – Nick
@尼克我只是更新答案,以嘗試在你的本地d。如果這樣的作品,你可以創建/提交一個拉請求,肯定鍵入 – Brocco
關閉,但編輯拋出錯誤「通用類型'Bloodhound'需要1個類型參數。 –
Nick