-
typescript類型
查看全部 -
typescript類型
查看全部 -
安裝nodejs.org下載相應版本
npm install -g typescrit
node -v
tsc -v
編譯ts文件
tsc main.ts
執行ts文件
node main.js查看全部 -
元組:固定長度,固定類型的特殊數組,用push會突破長度限制,但需要在約定類型內
let person = [1, 'abc']:這種不屬于元組,是屬于聯合類型數組
let person:(number, string)[] = ['abc', 1, true]
查看全部 -
設置變量類型后,重新賦值其他類型會提示錯誤:類型boolean不能賦值給string
let isTrue = true
// isTrue = 'abc' ts報錯
查看全部 -
通過使用泛型 在使用的時候才指定類型,得到不同類型的函數
const makeTuple = <T = number, U>(x: T, y: U): (T | U)[] => [x, y]
const v1: (number, string)[] = <number, string)makeTuple(1, 'one')
查看全部 -
一個文件就可以稱為一個模塊,通過export到出外部使用??蓪lass封裝成一個模塊導出
查看全部 -
class類是緊密相關的屬性和函數的集合
避免外部直接操作class屬性,就需要使用class訪問修飾符加以限制
設置為private屬性后可以通過添加get/set函數在外部訪問,賦值時可通過set函數進行校驗
私有熟悉private通常用下劃線表示_key,interface中可直接用key:number聲明
查看全部 -
ts的優勢
1. 功能相同的參數包裝成對象作為整體傳入
2. 通過校驗參數類型add(a: number, b: number),規避了add'1'+'2'='12'的風險
3. 通過校驗對象參數,約束傳參對象,規避了隨意傳遞一個對象參數導致報錯問題
封裝的聚合規則:高內聚,低耦合,可用class將功能相近的代碼組合在一起
高內聚:功能相關的事物,應該放在同一集合中,形成一個模塊
低耦合:模塊之間互相獨立,不同模塊之間保持低耦合的狀態
查看全部 -
休息休息
收拾收拾
查看全部 -
Generics 泛型
類型<> 泛型
數據的模板?
通過使用泛型 在使用的時候才指定類型,得到不同類型的函數
let makeTuble = <T, Y = number>(x: T, y: Y) => [x, y];
makeTuble<number, string>(2, '3')
查看全部 -
Access Modifier 訪問修飾符
class里面沒有寫訪問修飾符的都是public屬性
public 公有屬性
?
在外部可以修改
private 私有屬性
在外部無法訪問,且interface里面也不可以定義
ts里面有懶人包可以設置getter setter
interface也比較好使用 私有成員變量
查看全部 -
object
使用object類型時內部結構并不清晰,不會對代碼類型校驗有任何幫助
相當于指定了一個{},使用幾率較少
Interface
interface Point {
????x: number,
? ? y: number
} // 高內聚 (把相關聯的模塊寫在一起),低耦合
class?
緊密相關的屬性和函數的集合
interface Ipoint {
x: number,
y: number,
drawPoint: ()=> void;
getDistance: (p: Ipoint) => number;
}
class? Point implements Ipoint {
????x: number;
? ? y: number;
? ??drawPoint = ()=>{
????????????
????}
? ? getDistance = (p: Ipoint) => {
????????????return Math.pow(p.x - this.x, 2) +? Math.pow(p.y - this.y, 2)
????}
}
通過構造函數對class值進行初始化和啟用默認值,javascript不支持重載,有且僅有一個構造函數
ps:構造函數的參數加上關鍵字public,private,?
?
查看全部 -
函數類型
let log1 = function (message) {
????console.log(message);
}
let log2 = (message) => console.log(message);
與javascript寫法基本類似,區別就是可以指定參數變量類型和返回數據類型
let log3 = (message: string) => console.log(message);
// 通過問號表示可選性,不確定的都放在后面
let log4 = (message?: string) => console.log(message);
查看全部 -
類型斷言 (類型適配) Type Assertions
明確告訴ts進行類型適配 告訴它變量現在就是這種類型
有兩種方式
1.? <string>message
2. as 關鍵詞
查看全部
舉報