我有一个打字稿+ javascript模块,它正被编译为一个包,可以由另一个项目导入。我认为最好用一些代码来解释它,然后解释我的问题。
很快,当我的类转换为包时,如何在另一个项目中将其用作类型?
需要用作类型的类:
my-class.ts
export default class MyClass{
...
}
index.ts
import MyClass from './my-class';
export {
MyClass,
};
index.d.ts
declare module '@package/my-project'{
export interface MyClass{
//Am I supposed to declares types here?
}
}
otherProjectApp.vue
import {MyClass} from '@package/my-project';
private myClassInstance: any; //I want this to be :MyClass instead of "any"
beforeCreate(){
this.myClassInstance = new MyClass();
}
因此,从简化的代码片段中可以看到,我想将MyClass用作在otherProjectApp.vue中进行初始化的类型。这是一个vue文件,但是对于我认为的这种情况,它并不是很重要。
我一直在查看以下链接,但无法真正弄清楚该如何实现。 https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html
https://github.com/benjamn/ast-types/issues/106
为了提供一些背景信息,这是我的tsconfig.json文件:
{
"extends": "./extradetails.json",
"compilerOptions": {
"allowJs": true,
"declaration": false,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"strictNullChecks": false
}
}