我有一个npm包,其文件类似于:
'use strict'
module.exports = class TModel {
constructor (app) {
this.app = app
}
static schema () {
}
}
我想在这样的Typescript文件中使用它:
import Model from 't-model';
export class Book extends Model {
static schema() : any {
return {
title: {
type: 'string'
}
}
}
}
但这不起作用。 PHPStorm给出错误:
无法解析文件
使用tsc进行编译会给出错误:
错误TS2307:无法找到模块' t-model'
如果使用't-model/index'
代替't-model'
PHPStorm停止向我发送错误,但tsc仍会出现相同的错误。
我正在尝试统一我将为后端API和使用Typescript的前端创建的包。有没有办法做到这一点?
答案 0 :(得分:2)
有一个npm包,其文件类似于:
而不是:
module.exports = class TModel {
执行export class TModel
并让TypeScript生成module.exports
(使用module: commonjs
编译)。这样TypeScript就可以理解导出
更多相关信息:https://basarat.gitbooks.io/typescript/content/docs/project/modules.html
您需要声明:
declare module 't-model' {
class TModel // .....
export = TModel;
}
更多相关信息:https://basarat.gitbooks.io/typescript/content/docs/types/migrating.html