创建模块的NodeJS与打字稿
我想写与打字稿节点模块,这是我在多大程度上得到:创建模块的NodeJS与打字稿
MysqlMapper.ts
export class MysqlMapper{
private _config: Mysql.IConnectionConfig;
private openConnection(): Mysql.IConnection{
...
}
private createSelectAllQuery(constructor): string{
...
}
public getAll<T>(constructor): Q.Promise<Array<T>>{
.....
}
constructor(config: Mysql.IConnectionConfig){
...
}
}
index.ts
export * from "./MysqlMapper";
的package.json
{
"name": "mysql-metadata-orm",
"version": "1.0.0",
"description": "A Simple ORM using reflect-metadata",
"main": "build/index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "..."
},
"author": "+",
"license": "MIT",
"dependencies": {
"mysql": "^2.9.0",
"q": "^1.4.1",
"reflect-metadata": "^0.1.2"
}
}
我激活了宣言代我tsconfig文件,但我真的不知道如何得到一个声明文件,允许导入这样的模块:
import * as Mapper from "mysql-metadata-mapper"
我希望有人可以帮助我,因为它使我非常疯狂。
@Update
这些是产生.d.ts档案:
index.d.ts
export * from "./MysqlMapper";
MysqlMapper.d.ts
import * as Q from "q";
import * as Mysql from "mysql";
export declare class MysqlMapper {
private _config;
private openConnection();
private createSelectAllQuery(constructor);
getAll<T>(constructor: any): Q.Promise<Array<T>>;
constructor(config: Mysql.IConnectionConfig);
}
如何获取声明文件?
我建议你做你自己的声明文件:(例如globals.d.ts
)
declare module 'mysql-metadata-mapper' {
import * as mapper from './MysqlMapper';
export = mapper;
}
那么你可以参考例如本声明文件 /// <reference path="../globals.d.ts" />
并导入模块,只要你喜欢用:
import * as Mapper from 'mysql-metadata-mapper'
我不是100%肯定,如果这是干净的解决方案,但至少应该像你想要它。
首先感谢您的回答,但您的建议有一些问题,首先 - 不允许使用metadata-mapper,没有问题我更改了名称。 但是现在我在导入语句中出现错误: 环境模块声明中的导入或导出声明无法通过相关模块名称引用模块。 – Ced
我看到了 - 我没有用虚线测试它的名字。你是否尝试导入没有'./'? – FlorianTopf
是的,我做了,但模块没有找到这种方式 – Ced
你可能会在这里发布自动生成的声明为这个模块产生了什么? – FlorianTopf
当然我可以 – Ced
我知道这是一个非常古老的问题,但对于其他任何人稍后绊倒它(就像我过去一周所做的那样),您可能会发现这个打字稿样板项目很有用:https://github.com/bitjson/typescript-starter –