### 創建項目
```
npm init -y
```
修改package.json
```
{
"name": "ts_demo1",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\"",
"lite": "lite-server",
"tsc": "tsc",
"tsc:w": "tsc -w"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {},
"devDependencies": {
"lite-server": "^2.2.0",
"concurrently": "^2.0.0"
}
}
```
### 新建typescript編譯器配置文件
tsconfig.json
```
{
"compilerOptions": {
"target": "es5",
"module": "amd",
"sourceMap": true
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
```
```
tsconfig.json文件各項說明如下:
"compilerOptions"——編譯器選項;
"target"——編譯目標,如這里編譯為es5代碼;
"module"——處理獨立文件時的模塊加載方式;
"sourceMap"——是否創建map文件以幫助調試;
"exclude"——編譯器會編譯TypeScript文件(.ts或.tsx),通過排除設置里的TypeScript文件不會被編譯
```
### 測試
index.ts
```
class Person{
name: string;
constructor(name: string){
this.name = name;
}
say(){
console.log(this.name + " say ....");
}
}
let person = new Person("sn");
console.log("person:" + person.say());
```
index.html
```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script src="demo1.js"></script>
</body>
</html>
```
```
npm start
自動打開瀏覽器
```
### 使用調試
```
點擊綠色小三角(或F5)就開始調試
```
launch.json
```
{
// 使用 IntelliSense 了解相關屬性。
// 懸停以查看現有屬性的描述。
// 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}\\index.js",
"outFiles": [
"${workspaceFolder}/**/*.js"
],
"sourceMaps": true
}
]
}
```
- 語言
- Javascript
- 簡介
- 常量變量
- var
- let
- const
- 解構賦值
- 數據類型
- 簡單數據類型
- Undefined
- Null
- Boolean
- Number
- String
- 引用數據類型
- Object
- Array
- Json
- 閉包
- 閉包中的變量
- 函數
- 函數參數
- arguments
- rest
- 傳值方式
- 調用方式
- 函數調用
- 方法調用
- 構造函數
- 上下文
- 箭頭函數
- 異步
- promise
- async/await
- 面向對象
- 簡介
- 構造函數
- 創建對象
- 工廠模式
- 構造函數模式
- 原型模式
- 構造函數/原型組合模式
- 繼承
- 什么是繼承
- 怎么繼承
- 原型鏈繼承
- 拷貝繼承
- 原型式繼承
- 借用構造函數
- 對象擴展
- Object.assign
- 類
- 定義
- 類的繼承
- 模塊
- 定義模塊
- 導入模塊
- 簡介
- 垃圾回收
- Typescript
- 簡介
- 搭建環境
- 數據類型
- boolean
- number
- string
- array
- enum
- any
- void
- 類型推測
- 聯合類型
- 類
- 定義
- 繼承
- 封裝
- static
- 函數
- 定義
- 參數
- 接口
- 屬性類型接口
- 函數類型接口
- 數組類型接口
- 類類型接口
- 泛型
- 泛型函數
- 泛型類
- 模塊
- 定義
- Node.js
- 簡介
- IO優勢
- Node與V8
- 內部機制
- 多線程
- 并發支持
- libuv
- 創建項目
- 安裝Node
- 創建項目
- 全局對象
- console
- path
- process
- I/O
- 系統信息
- 命令行
- Buffer
- 模塊
- 創建模塊
- 導入模塊
- 系統模塊
- fs
- stat
- fstat
- 讀
- 寫
- http
- 服務端
- 客戶端
- stream
- 4種基本類型
- event
- 事件監聽
- 繼承
- child_process
- spawn
- fork
- path
- url
- 三方模塊
- socket.io
- 安裝
- 例子
- server
- client
- redis
- 安裝
- 編碼
- 數據類型
- 鍵值對
- 散列表
- 列表
- 集合
- 發布訂閱
- mongodb
- express
- mssql
- pm2
- qrcode
- ua-parse-js
- cpr
- js-cookie
- whatwg-fetch
- ora
- shelljs
- log4js
- Dart
- 框架
- Vue
- 簡介
- 基礎
- 聲明式渲染
- Vue實例
- 模板語法
- 插值
- 文本
- 原始Html
- 特性
- js表達式
- 指令