Nodejs、Typescript、打字:如何使用异步库
Nodejs, Typescript, typings: how to use async library
我正在尝试使用 Typescript 中的异步库;我已经安装了由 typings 提供的定义文件,但我无法使用 AsyncFunction:
///<reference path='typings/index.d.ts' />
'use strict';
import async = require( 'async' );
let functions : AsyncFunction<any>[] = [];
如果我编译这个提取物我得到这个错误:
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'.
我使用的异步定义文件是这样的:https://raw.githubusercontent.com/types/npm-async/ff63908a70ec51b775d9a6b8afac9945b12fbe08/2/index.d.ts
我做错了什么?
谢谢!
接口 AsyncFunction
未从该文件中导出。正如您在最后一行的 export = async;
中看到的那样,唯一的导出是 async
。
修复
如果您必须使用该注释,请随时将
interface AsyncFunction<T> { (callback: (err?: Error, result?: T) => void): void; }
复制到 global.d.ts
。
运行对项目根文件夹点赞两下
npm install async --save
npm i @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);
});
我正在尝试使用 Typescript 中的异步库;我已经安装了由 typings 提供的定义文件,但我无法使用 AsyncFunction:
///<reference path='typings/index.d.ts' />
'use strict';
import async = require( 'async' );
let functions : AsyncFunction<any>[] = [];
如果我编译这个提取物我得到这个错误:
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'.
我使用的异步定义文件是这样的:https://raw.githubusercontent.com/types/npm-async/ff63908a70ec51b775d9a6b8afac9945b12fbe08/2/index.d.ts
我做错了什么?
谢谢!
接口 AsyncFunction
未从该文件中导出。正如您在最后一行的 export = async;
中看到的那样,唯一的导出是 async
。
修复
如果您必须使用该注释,请随时将
interface AsyncFunction<T> { (callback: (err?: Error, result?: T) => void): void; }
复制到 global.d.ts
。
运行对项目根文件夹点赞两下
npm install async --save
npm i @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);
});