我覺得我做的導入/導出不正確,因爲我拿不出打字稿編譯器錯誤,但得到一個運行時錯誤嘗試從另一個文件中引用我的ActivityType
類。打字稿import語句被評估爲NULL在運行時用的node.js
import Activities = require('../models/Activities');
import ActivityType = Activities.ActivityType;
export class Experience extends BaseModel {
static save(experience:Experience) {
console.log(ActivityType.created) //this throws an error saying ActivityType is null
experience.validate();
}
}
和在models/Activities.ts
:
錯誤調用Experience.save()
當發生
export class ActivityType {
static created = 'created';
static updated = 'updated';
static commented = 'commented';
static uploaded = 'uploaded';
static joined = 'joined';
static followed = 'followed';
static chat = 'chat';
}
我嘗試包裹在Activities.ts出口語句在module
塊爲好,例如
module Activities {
export class ActivityType {
static created = 'created';
static updated = 'updated';
static commented = 'commented';
static uploaded = 'uploaded';
static joined = 'joined';
static followed = 'followed';
static chat = 'chat';
}
}
但後來給我在輸入語句中的Typescript錯誤。
了一下週圍挖越看起來就像是一個誤導性的錯誤,是一個循環依賴。 My Experience類導入ActivityType,ActivityType導入Experience。從Activites.ts註釋掉參考和調用Experience可以正確解析錯誤消息並不表示它是循環依賴項,並且沒有ca編譯時錯誤 – MonkeyBonkey