2016-09-14 31 views
1

私は完全に新しいですtypescriptでcsvファイルを解析しようとしています。パーサに正しいタイピングをさせることができません。Typescript csv-parse

var fs = require('fs'); 
var parse = require('csv-parse'); 

var parser = parse({delimiter: ';'}, function(err, data){ 
    console.log(data); 
}); 

fs.createReadStream(__dirname+'/fs_read.csv').pipe(parser); 

しかし、それは、私はエラーを取得活字体に来るとき、私はタイピングfrom dtインストール:タイピングなし

すべてが簡単で、私はエラーを取得

import * as csvParse from 'csv-parse'; 
import fs = require('fs'); 
var myParser:csvParse.CsvParser = csvParse({delimiter: ','}, function(data, err) { 
    console.log(data); 
}); 

Type 'void | CsvParser' is not assignable to type 'CsvParser'. 

誰でも私にヒントを与えたり、以前にtypescriptでcsv-parseを使ってtheiを共有することはできますかrコード?

+0

あなたがここに 'csvParse(何をすべきかをしようとしている{区切り記号::「」}、機能(データ、ERR)をだから、それをキャストし、実際にCsvParser(ボイドではない)であることをTSを伝えるために .... '? – iberbeu

+0

私はmyparserをタイプcsvにしたいと思います。コードの最後の行にwritablestreamを実装しています。クラスmyparserはcsvParse.CsvParserを実装しましたが、解析されたデータを取得できませんでした。 – niklas

+1

'new csvParse.CsvParse({delimiter:'、 '}、function(data、err)....' – iberbeu

答えて

3

これは単なるキャストの問題です。すべてのコードが正しいです。ちょうどTSがCsvParseから返されているものを知っている必要があります。定義ファイルを見ると、その戻り署名はvoid|parse.CsvParserです。

var myParser:csvParse.CsvParser = csvParse({delimiter: ','}, function(data, err) { 
    console.log(data); 
}) as csvParse.CsvParser;