




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第VSCode開(kāi)發(fā)TypeScript的實(shí)現(xiàn)步驟目錄第一個(gè)程序配置文件tsconfig.json調(diào)試模塊化使用Webpack打包客戶端代碼TypeScript是JaveScript的超集,為JavaScript增加了很多特性,它可以編譯成純JavaScript在瀏覽器上運(yùn)行。TypeScript已經(jīng)成為各種流行框架和前端應(yīng)用開(kāi)發(fā)的首選。本文概要介紹使用VSCode開(kāi)發(fā)TypeScript的過(guò)程。
第一個(gè)程序
在VSCode中開(kāi)發(fā)TypeScript,首先要安裝TypeScript,這里使用npm安裝:
npminstalltypescript-g
安裝完成后,運(yùn)行下面代碼看一下版本:
tsc-version
進(jìn)入控制臺(tái),創(chuàng)建一個(gè)文件夾,進(jìn)入這個(gè)文件夾,運(yùn)行命令code.。這會(huì)啟動(dòng)VSCode,并且打開(kāi)當(dāng)前的文件夾。在文件夾中創(chuàng)建一個(gè)文件hello.ts,寫(xiě)幾句代碼:
letv="hello";
console.log(v);
進(jìn)入控制臺(tái),輸入tschello.ts,會(huì)生成對(duì)應(yīng)的hello.js,輸入nodehello.js,會(huì)運(yùn)行代碼。
配置文件tsconfig.json
現(xiàn)在我們創(chuàng)建TypeScript項(xiàng)目的配置文件tsconfig.json,最簡(jiǎn)單的內(nèi)容如下:
{
"compilerOptions":{
"target":"es5",
"module":"commonjs"
編輯這個(gè)文件時(shí),VSCode的智能提示很有幫助。常用的設(shè)置還有:js代碼的輸出路徑、是否可以包括js文件、調(diào)試時(shí)使用的代碼映射等等,下面是復(fù)雜一些的配置:
{
"compilerOptions":{
"target":"es5",
"module":"commonjs",
"allowJs":true,
"sourceMap":true,
"outDir":"out"
這里輸出路徑設(shè)置為out,我們把前面編譯生成的js文件刪掉,重新編譯一下,注意,由于有了tsconfig.json文件,在終端中只要輸入tsc就可以了。
可以看到,編譯的文件保存在out子目錄中,并且多了map文件。
調(diào)試
現(xiàn)在我們看如何在VSCode中進(jìn)行調(diào)試,在前面的ts代碼界面,按F5調(diào)試,會(huì)出現(xiàn)選擇環(huán)境的提示框,選擇Node.js,出現(xiàn)下面的錯(cuò)誤:
選擇配置任務(wù),然后選擇tsc:構(gòu)建-tsconfig.json,這時(shí),會(huì)創(chuàng)建新的文件夾.vscode,在這個(gè)文件夾中創(chuàng)建task.json,內(nèi)容如下:
{
"version":"2.0.0",
"tasks":[
"type":"typescript",
"tsconfig":"tsconfig.json",
"problemMatcher":[
"$tsc"
"group":"build",
"label":"tsc:構(gòu)建-tsconfig.json"
再次按F5,仍然出現(xiàn)上面的錯(cuò)誤。選擇添加配置,會(huì)創(chuàng)建launch.json文件:
{
"version":"0.2.0",
"configurations":[
"type":"node",
"request":"launch",
"name":"啟動(dòng)程序",
"skipFiles":[
"node_internals/**"
"program":"${workspaceFolder}\\helloworld.ts",
"preLaunchTask":"tsc:build-tsconfig.json",
"outFiles":[
"${workspaceFolder}/out/**/*.js"
再次按F5,仍然會(huì)出現(xiàn)錯(cuò)誤,檢查一下,會(huì)發(fā)現(xiàn)生成的兩個(gè)文件中,任務(wù)的名稱(chēng)是不一樣的,將task.json中的tsc:構(gòu)建-tsconfig.json修改為tsc:build-tsconfig.json,再次按F5運(yùn)行,這次可以了。試著加個(gè)斷點(diǎn),也可以:
模塊化
我們希望模塊化開(kāi)發(fā)我們的代碼,將代碼分割到獨(dú)立的文件中,便于分別開(kāi)發(fā)與調(diào)試。我們希望顯示地聲明引用,避免全局變量函數(shù)等等帶來(lái)的混亂。這時(shí),我們需要使用export聲明可以被其它模塊使用的函數(shù)和變量,在使用這些函數(shù)和變量的模塊中,使用import導(dǎo)入需要的函數(shù)、變量等等。我們創(chuàng)建一個(gè)新的文件myfunctions.ts,里面只有一個(gè)函數(shù):
exportfunctionmyName(){
return"張三";
修改helloworld.ts,調(diào)用這個(gè)函數(shù):
import{myName}from'./myfunctions'
letv="hello"+myName();
console.log(v);
使用Webpack打包客戶端代碼
前幾部分針對(duì)的是服務(wù)端開(kāi)發(fā),對(duì)于客戶端的代碼,我們希望1)可以打包為單獨(dú)的js文件進(jìn)行發(fā)布;2)可以方便地運(yùn)行客戶端程序;3)可以方便地進(jìn)行調(diào)試。這里我們使用Webpack作為打包工具,在VSCode中創(chuàng)建TypeScript的客戶端項(xiàng)目骨架。
首先,為我們的測(cè)試項(xiàng)目創(chuàng)建一個(gè)目錄,在控制臺(tái)進(jìn)入這個(gè)目錄,運(yùn)行code.啟動(dòng)vscode。在終端中執(zhí)行npminit,創(chuàng)建項(xiàng)目的packeg.json,內(nèi)容如下:
{
"name":"mydevnew",
"version":"1.0.0",
"description":"mynewtypescriptproject",
"main":"index.js",
"scripts":{
"test":"echo\"Error:notestspecified\"exit1"
"author":"",
"license":"ISC"
然后,安裝必要的程序包,在終端中執(zhí)行:
npminstall--save-devwebpackwebpack-clitypescriptts-loaderwebpack-dev-serversource-map-loader
接下來(lái),添加typescript的配置文件tsconfig.json:
{
"compilerOptions":{
"module":"es6",
"target":"es5",
"sourceMap":true,
"declaration":true,
"declarationDir":"./dist/typing",
"lib":[
"webworker",
"es6",
"es5",
"dom"
"exclude":[
"node_moudles",
"dist"
還要添加webpack.config.js:
constpath=require('path');
module.exports={
mode:'development',
entry:'./src/main.ts',//入口文件
output:{
filename:'main.js',//編譯出來(lái)的文件名
path:path.resolve(__dirname,'dist'),//編譯文件所在目錄
publicPath:'/dist/',//靜態(tài)資源目錄,可以設(shè)為“編譯文件所在目錄”,代碼自動(dòng)編譯,網(wǎng)頁(yè)自動(dòng)刷新
module:{
rules:[
//Forournormaltypescript
test:/\.ts$/,
use:[
loader:'ts-loader'
exclude:/(:node_modules)/,
resolve:{
modules:[
'src',
'node_modules'
extensions:[
'.js',
'.ts'
devServer:{
static:{
directory:path.join(__dirname,''),
hot:true,
compress:true,
host:'localhost',
port:8888
devtool:'source-map',
修改package.json,在scritps中增加:
"build":"webpack",
"dev":"webpack-dev-server",
到此,配置環(huán)境基本完成,可以寫(xiě)代碼了,創(chuàng)建src目錄用來(lái)保存代碼,在src中創(chuàng)建main.ts和hello.ts,代碼如下:
import{myName}from"hello"
console.log("TypeScript測(cè)試項(xiàng)目");
console.log(myName());
document.body.innerHTML="你好!"+myName();
hello.ts是一個(gè)小的模塊:
exportfunctionmyName(){
return"張三";
在根目錄創(chuàng)建一個(gè)引導(dǎo)頁(yè)面index.html:
!DOCTYPEhtml
htmllang="en"
head
metacharset="UTF-8"
titleTypeScript測(cè)試項(xiàng)目/title
/head
body
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智慧城市實(shí)戰(zhàn)解析
- 道德法治啟蒙課
- 詞匯記憶的藝術(shù)
- 創(chuàng)新教學(xué)實(shí)踐探索
- 出行新紀(jì)元模板
- 雙十二營(yíng)銷(xiāo)解析
- 2025年中、大功率激光器項(xiàng)目申請(qǐng)報(bào)告
- 肝臟切除術(shù)麻醉管理
- 2025年鈹箔及鈹合金箔項(xiàng)目提案報(bào)告
- 初級(jí)中學(xué)筆試題目及答案
- 高壓旋噴樁施工技術(shù)交底
- DL-T5024-2020電力工程地基處理技術(shù)規(guī)程
- 《插花與花藝設(shè)計(jì)》課件-項(xiàng)目六 創(chuàng)意插花
- 2024年上海市普通高中學(xué)業(yè)水平等級(jí)性考試化學(xué)試卷(含答案)
- 買(mǎi)賣(mài)車(chē)輛協(xié)議書(shū)范文模板
- DZ∕T 0153-2014 物化探工程測(cè)量規(guī)范(正式版)
- 2024年海南省??谑兄锌家荒?荚嚿镌囶}
- 2024年4月自考02323操作系統(tǒng)概論試題及答案含評(píng)分標(biāo)準(zhǔn)
- MOOC 模擬電子技術(shù)基礎(chǔ)-華中科技大學(xué) 中國(guó)大學(xué)慕課答案
- 2024網(wǎng)絡(luò)信息安全應(yīng)急響應(yīng)Windows應(yīng)急手冊(cè)
- MOOC 灰色系統(tǒng)理論-南京航空航天大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論