3 回答

TA貢獻1798條經驗 獲得超3個贊
采用雙向綁定的方式
HTML中:
1 | < input type = "text" [(ngModel)]="userName"> |
ts中,定義全局變量userName:
userName:any;
當在input中輸入之后,ts中的值會相應的進行變化。直接讀取userName中的值就是input中的輸入內容。
typescript講求去DOM化,不用像javascript一樣獲取元素后在取值

TA貢獻1777條經驗 獲得超3個贊
TypeScript 有兩種模塊化方式,一種是使用 ES6 的 import/export 及其 TS 對這種語法的微小擴展;另一種方式是使用 TS 特有的 namespace (命名空間)。在分析這兩種模塊化方式之前,我先推薦使用第一種方式,因為第二種方式涉及到模塊引用順序的問題(可以通過 /// <reference path="..." /> 來解決,但感覺不如 import 爽。
如果使用 namespace 方式的模塊化,那么所有東西都是全局的,內部引用直接使用即可,TS 能識別出同一命名空間下export 的內容;外部引用導入即可;全局使用(比如在頁面上的 <script> 內,把命名空間寫完整就好(僅仍然只能使用export 的內容。
如果使用 ES6 模塊方式的模塊化,目前最好的方式可能就是掛到 window 上了,如果是在 Node 下,就需要掛到 global上。如果要兼容,就得寫點代碼來判斷全局對象。一般來說,用 TypeScript 寫代碼,就已經決定了要模塊化,除非很少的時候需要在頁面的 <script> 中調用腳本中的某些對象,這種情況往 window 上掛就行。如果是要做為庫來發布,tsc 是可以編譯生成 .d.ts 文件的,如果是引用 js,那就不存在靜態類型檢查的問題;如果是引用 ts,那就以模塊化的方式引用;如果想以全局的方式引用 ts,那就在在全局對象上掛一個入口對象,然后在文檔里說明,使用前自己申明這個對象(不需要提供 .d.ts),也就幾行代碼的事情,也不算麻煩。比如
declare global {
interface Window {
myEntry: EntryClass;
}
}
- 3 回答
- 0 關注
- 1725 瀏覽
添加回答
舉報