nik*_*las 6 csv typescript typescript-typings
我试图解析一个csv文件与typescript,我是全新的.我不能让解析器使用正确的类型.
没有打字,一切都很简单:
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);
Run Code Online (Sandbox Code Playgroud)
但是当涉及到打字稿我得到错误时,我安装了来自dt的打字:
import * as csvParse from 'csv-parse';
import fs = require('fs');
var myParser:csvParse.CsvParser = csvParse({delimiter: ','}, function(data, err) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
我收到了错误
Type 'void | CsvParser' is not assignable to type 'CsvParser'.
Run Code Online (Sandbox Code Playgroud)
任何人都可以给我一个提示或使用带有打字稿的csv-parse并分享他们的代码吗?
这只是一个简单的转换问题,所有代码都是正确的,它只需要TS帮助知道从CsvParse返回的内容.如果你看一下定义文件,它的返回签名就是void|parse.CsvParser.所以告诉TS它实际上是一个CsvParser(而不是void)只是强制转换它:
var myParser:csvParse.CsvParser = csvParse({delimiter: ','}, function(data, err) {
console.log(data);
}) as csvParse.CsvParser;
Run Code Online (Sandbox Code Playgroud)
小智 7
不要解释您想要哪种类型作为方法的结果csvParse:
var myParser = csvParse({delimiter: ','}, function(data, err) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
<>var myParser:csvParse.CsvParser = <csvParse.CsvParser> csvParse({delimiter: ','}, function(data, err) {
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
注意:这仅适用于
.ts文件。在.jsx文件中,您将看到错误“预期相应的 JSX 结束标记...”
asvar myParser:csvParse.CsvParser = csvParse({delimiter: ','}, function(data, err) {
console.log(data);
}) as csvParse.CsvParser;
Run Code Online (Sandbox Code Playgroud)