我開始研究使用Backbone和Javascript的項目。我不確定如何開始整合Typescript。例如,我們有我們公司的命名空間之前我們的觀點,模型,對象等,所以創建一個骨幹物體看起來像這樣沒有打字稿:創建打字稿類與現有的Javascript和Backbone對象配合使用
Company.Views.MyNewView = (function() { return Backbone.View.extend({ } })();
所以,現在,使用打字稿,我以爲我可以做類似
class Company.Views.MyNewView {
}
但是,Typescript不喜歡名稱中的時間段。所以我的第一個問題是如何在我的項目中使用Typescript和現有的命名空間?這些命名空間被簡單地定義爲
var Company = Company || {};
Company.Views = Company.Views || {};
我的第二個問題是更一般的。展望未來,Typescript能否輕鬆整合現有項目,其中所有內容都是使用標準JavaScript定義的?我不確定如何訪問我的任何非Typescript類對象。提前致謝。
編輯: 嘗試與現有的JavaScript對象結合
declare module Company.Views {
export class MyNewRouter extends Company.BaseRouter {
// It does not recognize Company.BaseRouter
}
}
所以,它聽起來就像至少在舊的命名空間,我至少需要將其導出爲模塊? – Crystal
否。如果你想在打字稿中使用現有的命名空間,你可以使用聲明。對於新的命名空間使用模塊 – basarat
但是,如果我有一個已經存在的JS對象被稱爲公司。BaseRouter,我不能擴展那種類型嗎?我添加了我在原始帖子底部嘗試的代碼段。 – Crystal