簡體   English   中英

無法導入已導出兩次的類(Typescript)

[英]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.Ba.ts你定義b類型 moduleB.B ,但你已經定義moduleB.B常量 由於const是對C的構造函數的引用,因此new moduleB.B()會進行編譯。

你可以寫export type B = Cb.ts代替,但將導出類型別名這將意味着b : moduleB.B會編譯,但new moduleB.B()不會因為你沒有出口構造功能。

b.ts使用export {C as B} (全別名)來實現您想要的目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM