[英]Nodejs, Typescript, typings: how to use async library
I'm trying to use the async library in Typescript; 我正在尝试在Typescript中使用异步库; I've installed the definition file that was provide by typings but I cannot use AsyncFunction:
我已经安装了通过键入提供的定义文件,但是我不能使用AsyncFunction:
///<reference path='typings/index.d.ts' />
'use strict';
import async = require( 'async' );
let functions : AsyncFunction<any>[] = [];
If I compile this extract I got this error: 如果我编译此摘录,则会出现此错误:
tsc test.ts --target es2015 --module system --removeComments --forceConsistentCasingInFileNames --noEmitOnError --noFallthroughCasesInSwitch --noImplicitAny --noImplicitReturns --noImplicitUseStrict --declaration --outfile a.js
test.ts(4,17): error TS2304: Cannot find name 'AsyncFunction'.
The async definition file that I use is this: https://raw.githubusercontent.com/types/npm-async/ff63908a70ec51b775d9a6b8afac9945b12fbe08/2/index.d.ts 我使用的异步定义文件是这样的: https : //raw.githubusercontent.com/types/npm-async/ff63908a70ec51b775d9a6b8afac9945b12fbe08/2/index.d.ts
What I'm doing wrong? 我做错了什么?
Thank you! 谢谢!
The interface AsyncFunction
is not exported from that file. 接口
AsyncFunction
不会从该文件导出。 The only export is async
as you can see from export = async;
唯一的出口是
async
的,你可以看到从export = async;
on the last line. 在最后一行。
Feel free to copy interface AsyncFunction<T> { (callback: (err?: Error, result?: T) => void): void; }
随意复制
interface AsyncFunction<T> { (callback: (err?: Error, result?: T) => void): void; }
interface AsyncFunction<T> { (callback: (err?: Error, result?: T) => void): void; }
to a global.d.ts
if you must use that annotation. interface AsyncFunction<T> { (callback: (err?: Error, result?: T) => void): void; }
到global.d.ts
如果必须使用该注释)。
Run Two commends on project root folder 在项目根文件夹上运行两个命令
npm install async --save
npm install async --save
npm i @types/async --save
npm我@ types / async --save
import * as async from 'async';
async.auto({
get_data: function(callback:any) {
console.log('in get_data');
// async code to get some data
callback(null, 'data', 'converted to array');
},
make_folder: function(callback:any) {
console.log('in make_folder');
// async code to create a directory to store a file in
// this is run at the same time as getting the data
callback(null, 'folder');
},
write_file: ['get_data', 'make_folder', function(results:any, callback:any) {
console.log('in write_file', JSON.stringify(results));
// once there is some data and the directory exists,
// write the data to a file in the directory
callback(null, 'filename');
}],
email_link: ['write_file', function(results:any, callback:any) {
console.log('in email_link', JSON.stringify(results));
// once the file is written let's email a link to it...
// results.write_file contains the filename returned by write_file.
callback(null, {'file':results.write_file, 'email':'user@example.com'});
}]
}, function(err:any, results:any) {
console.log('err = ', err);
console.log('results = ', results);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.