3 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個贊
javascript中的函數(shù):
/*普通函數(shù)*/
function add(x, y) {
console.log(x + y);
}
add(1, 2);
/*匿名函數(shù)*/
var addFun = function (x, y) {
console.log(x + y);
};
addFun(2, 3);
10
在TypeScript中,我們可以給函數(shù)指定類型,這樣在編譯階段會規(guī)避很多錯誤.函數(shù)類型分為參數(shù)類型和返回值類型,如下代碼所示,參數(shù)類型直接在參數(shù)后指定,返回值類型則在該函數(shù)后面指定。 TypeScript能夠根據(jù)返回語句自動推斷出返回值類型,因此我們通常省略它。

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個贊
## typeof :
```TypeScript
let strClass: typeof String = String;
let str: String = new strClass();
let str1 = strClass;
```
詳見:網(wǎng)頁鏈接Typescipt的文檔

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