国产精在线-国产精欧美一区二区三区-国产精视频-国产精品 日韩-一级黄色片在线看-一级黄色片在线播放

TypeScript學(xué)習(xí)筆記

TypeScript 是一種由微軟開(kāi)發(fā)的自由和開(kāi)源的編程語(yǔ)言,它是 JavaScript 的一個(gè)超集,擴(kuò)展了 JavaScript 的語(yǔ)法。

TypeScript是為開(kāi)發(fā)大型應(yīng)用而設(shè)計(jì)的,并且TypeScript可轉(zhuǎn)譯成JavaScript。由于TypeScript是JavaScript的嚴(yán)格超集,任何現(xiàn)有的JavaScript程式都是合法的TypeScript程序。

安裝 Typescript

Typescript 官網(wǎng)地址: https://www.typescriptlang.org/zh/

使用 nvm 來(lái)管理 node 版本: https://github.com/nvm-sh/nvm

安裝 Typescript:

npm install -g typescript

使用 tsc 全局命令:

 

// 查看 tsc 版本
tsc -v
// 編譯 ts 文件
tsc fileName.ts

數(shù)據(jù)類(lèi)型

原始數(shù)據(jù)類(lèi)型

Typescript 文檔地址:Basic Types

Javascript 類(lèi)型分類(lèi):

原始數(shù)據(jù)類(lèi)型 - primitive values:

  • Boolean
  • Null
  • Undefined
  • Number
  • BigInt
  • String
  • Symbol
let isDone: boolean = false

// 接下來(lái)來(lái)到 number,注意 es6 還支持2進(jìn)制和8進(jìn)制,讓我們來(lái)感受下

let age: number = 10
let binaryNumber: number = 0b1111

// 之后是字符串,注意es6新增的模版字符串也是沒(méi)有問(wèn)題的
let firstName: string = 'viking'
let message: string = `Hello, ${firstName}, age is ${age}`

// 還有就是兩個(gè)奇葩兄弟兩,undefined 和 null
let u: undefined = undefined
let n: null = null

// 注意 undefined 和 null 是所有類(lèi)型的子類(lèi)型。也就是說(shuō) undefined 類(lèi)型的變量,可以賦值給 number 類(lèi)型的變量:
let num: number = undefined

any 類(lèi)型

let notSure: any = 4
notSure = 'maybe it is a string'
notSure = 'boolean'
// 在任意值上訪問(wèn)任何屬性都是允許的:
notSure.myName
// 也允許調(diào)用任何方法:
notSure.getName()

 

Array 和 Tuple

Typescript 文檔地址:Array 和 Tuple

//最簡(jiǎn)單的方法是使用「類(lèi)型 + 方括號(hào)」來(lái)表示數(shù)組:
let arrOfNumbers: number[] = [1, 2, 3, 4]
//數(shù)組的項(xiàng)中不允許出現(xiàn)其他的類(lèi)型:
//數(shù)組的一些方法的參數(shù)也會(huì)根據(jù)數(shù)組在定義時(shí)約定的類(lèi)型進(jìn)行限制:
arrOfNumbers.push(3)
arrOfNumbers.push('abc')

// 元祖的表示和數(shù)組非常類(lèi)似,只不過(guò)它將類(lèi)型寫(xiě)在了里面 這就對(duì)每一項(xiàng)起到了限定的作用
let user: [string, number] = ['viking', 20]
//但是當(dāng)我們寫(xiě)少一項(xiàng) 就會(huì)報(bào)錯(cuò) 同樣寫(xiě)多一項(xiàng)也會(huì)有問(wèn)題
user = ['molly', 20, true]

interface 接口

Typescript 文檔地址:Interface

Duck Typing 概念:

如果某個(gè)東西長(zhǎng)得像鴨子,像鴨子一樣游泳,像鴨子一樣嘎嘎叫,那它就可以被看成是一只鴨子。

 

// 我們定義了一個(gè)接口 Person
interface Person {
  name: string;
  age: number;
}
// 接著定義了一個(gè)變量 viking,它的類(lèi)型是 Person。這樣,我們就約束了 viking 的形狀必須和接口 Person 一致。
let viking: Person ={
  name: 'viking',
  age: 20
}

//有時(shí)我們希望不要完全匹配一個(gè)形狀,那么可以用可選屬性:
interface Person {
    name: string;
    age?: number;
}
let viking: Person = {
    name: 'Viking'
}

//接下來(lái)還有只讀屬性,有時(shí)候我們希望對(duì)象中的一些字段只能在創(chuàng)建的時(shí)候被賦值,那么可以用 readonly 定義只讀屬性

interface Person {
  readonly id: number;
  name: string;
  age?: number;
}
viking.id = 9527

 

 

THE END
主站蜘蛛池模板: 精品三级在线观看 | 男人的天堂久久精品激情 | 香蕉国产人午夜视频在线观看 | 免费视频久久看 | 日韩欧美一区二区不卡看片 | 在线看片 在线播放 | 手机国产精品一区二区 | 日本久久久久一级毛片 | 一级特色大黄美女播放网站 | 91精品国产91热久久p | 中文字幕一区二区三区免费视频 | 喷潮白浆直流在线播放 | 日韩欧美不卡一区二区三区 | 热久久伊人 | freesex日本高清nice | 欧美黄色精品 | 亚洲日本精品 | 成人高清视频免费观看 | 久草资源福利 | 成人亚洲精品一区二区 | 一区二区视频在线 | 国产精品亚洲四区在线观看 | 日韩一级不卡 | 在线观看亚洲免费视频 | 91精品亚洲| 香港台湾经典三级a视频 | 最近韩国日本免费免费版 | 欧美一级毛片免费看视频 | 思思91精品国产综合在线 | 视频精品一区二区三区 | 久久综合香蕉久久久久久久 | 久久精品国产亚洲综合色 | a在线观看欧美在线观看 | 美女张开腿让男人 | 国产精品青草久久久久福利99 | 国产免费福利体检区久久 | 日本人的色道www免费一区 | 亚洲小视频 | 麻豆第一页| 99视频久久精品久久 | 美女被免费视频网站a国产 美女被免费网站视频软件 美女被免费网站在线软件 美女被免费网站在线视频软件 |