[英]Unable to import class that was exported two times (Typescript)
我無法導入已導出兩次的類。
a.ts
import * as moduleB from "./b";
export class A {
b: moduleB.B;
constructor() {
this.b = new moduleB.B();
this.b.hello();
}
}
b.ts
import {C} from "./c";
export const B = C;
c.ts
export class C {
hello() {
console.log("hello");
}
}
錯誤消息是:
a.ts(3,14): error TS2305: Module '"b"' has no exported member 'B'.
問題似乎在於,“導出常量B = C;”可能未導出C的類型。 如果我更改“ b:moduleB.B;”,錯誤將消失。 只是“ b:任何”。 我怎樣才能解決這個問題?
在b.ts中使用默認導出會起作用,但是我想在b.ts中導出幾件事,所以這不是一種選擇。 我正在使用Typescript 1.7.5。
當你聲明屬性b : moduleB.B
在a.ts
你定義b
是類型 moduleB.B
,但你已經定義moduleB.B
為常量 。 由於const是對C
的構造函數的引用,因此new moduleB.B()
會進行編譯。
你可以寫export type B = C
在b.ts
代替,但將只導出類型別名這將意味着b : moduleB.B
會編譯,但new moduleB.B()
不會因為你沒有出口構造功能。
在b.ts
使用export {C as B}
(全別名)來實現您想要的目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.