iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >VSCode如何开发TypeScript
  • 840
分享到

VSCode如何开发TypeScript

2023-06-29 06:06:36 840人浏览 泡泡鱼
摘要

本篇内容介绍了“vscode如何开发typescript”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!TypeScript是JaveScri

本篇内容介绍了“vscode如何开发typescript”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

TypeScript是JaveScript的超集,为javascript增加了很多特性,它可以编译成纯JavaScript在浏览器上运行。TypeScript已经成为各种流行框架前端应用开发的首选。

第一个程序

在VS Code中开发TypeScript,首先要安装TypeScript,这里使用npm安装:

npm install typescript -g

安装完成后,运行下面代码看一下版本:

tsc -version

进入控制台,创建一个文件夹,进入这个文件夹,运行命令code .。这会启动VS Code,并且打开当前的文件夹。在文件夹中创建一个文件hello.ts,写几句代码:

let v="hello";console.log(v);

进入控制台,输入 tsc hello.ts,会生成对应的hello.js,输入node hello.js,会运行代码。

VSCode如何开发TypeScript

配置文件tsconfig.JSON

现在我们创建TypeScript项目的配置文件tsconfig.json,最简单的内容如下:

{  "compilerOptions": {    "target": "es5",    "module": "commonjs"  }}

编辑这个文件时,VSCode的智能提示很有帮助。常用的设置还有:js代码的输出路径、是否可以包括js文件、调试时使用的代码映射等等,下面是复杂一些的配置:

{    "compilerOptions": {      "target": "es5",      "module": "commonjs",      "allowJs": true,      "sourceMap": true,      "outDir": "out"    }  }

这里输出路径设置为out,我们把前面编译生成的js文件删掉,重新编译一下,注意,由于有了tsconfig.json文件,在终端中只要输入tsc就可以了。

VSCode如何开发TypeScript

可以看到,编译的文件保存在out子目录中,并且多了map文件。

调试

现在我们看如何在VS Code中进行调试,在前面的ts代码界面,按F5调试,会出现选择环境的提示框,选择node.js,出现下面的错误:

VSCode如何开发TypeScript

选择“配置任务”,然后选择“tsc: 构建 - tsconfig.json”,这时,会创建新的文件夹.vscode,在这个文件夹中创建task.json,内容如下:

{"version": "2.0.0","tasks": [{"type": "typescript","tsconfig": "tsconfig.json","problemMatcher": ["$tsc"],"group": "build","label": "tsc: 构建 - tsconfig.json"}]}

再次按F5,仍然出现上面的错误。选择添加配置,会创建“launch.json”文件:

{    "version": "0.2.0",    "configurations": [        {            "type": "node",            "request": "launch",            "name": "启动程序",            "skipFiles": [                "<node_internals>*.js"            ]        }    ]}

再次按F5,仍然会出现错误,检查一下,会发现生成的两个文件中,任务的名称是不一样的,将task.json中的“tsc: 构建 - tsconfig.json”修改为“tsc: build - tsconfig.json”,再次按F5运行,这次可以了。试着加个断点,也可以:

VSCode如何开发TypeScript

模块化

我们希望模块化开发我们的代码,将代码分割到独立的文件中,便于分别开发与调试。我们希望显示地声明引用,避免全局变量函数等等带来的混乱。这时,我们需要使用export声明可以被其它模块使用的函数和变量,在使用这些函数和变量的模块中,使用import导入需要的函数、变量等等。我们创建一个新的文件myfunctions.ts,里面只有一个函数:

export function myName(){    return "张三";}

修改helloworld.ts,调用这个函数:

import {myName} from './myfunctions'let v="hello"+myName();console.log(v);

使用webpack打包客户端代码

前几部分针对的是服务端开发,对于客户端的代码,我们希望1)可以打包为单独的js文件进行发布;2)可以方便地运行客户端程序;3)可以方便地进行调试。这里我们使用WEBpack作为打包工具,在VS Code中创建TypeScript的客户端项目骨架。

首先,为我们的测试项目创建一个目录,在控制台进入这个目录,运行code . 启动vs code。在终端中执行npm init,创建项目的packeg.json,内容如下:

{  "name": "mydevnew",  "version": "1.0.0",  "description": "my new typescript project",  "main": "index.js",  "scripts": {    "test": "echo \"Error: no test specified\" && exit 1"  },  "author": "",  "license": "ISC"}

然后,安装必要的程序包,在终端中执行:

npm install --save-dev webpack webpack-cli typescript ts-loader  webpack-dev-server source-map-loader

接下来,添加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:

const path = require('path'); module.exports = {    mode: 'development',    entry: './src/main.ts',//入口文件    output: {        filename: 'main.js',//编译出来的文件名        path: path.resolve(__dirname, 'dist'),//编译文件所在目录           publicPath: '/dist/',//静态资源目录,可以设为“编译文件所在目录”, 代码自动编译,网页自动刷新    },    module: {        rules: [            {                // For our nORMal typescript                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",

到此,配置环境基本完成,可以写代码了,创建src目录用来保存代码,在src中创建main.ts和hello.ts,代码如下:

import {myName} from "hello"console.log("TypeScript测试项目");console.log(myName());document.body.innerhtml="你好!"+myName();

hello.ts是一个小的模块:

export function myName(){    return "张三";}

在根目录创建一个引导页面index.html:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>TypeScript测试项目</title></head><body>    <script src="dist/main.js"></script></body></html>

这时,我们可以在终端中运行 npm run dev,启动webpack 的web server,在浏览器中,输入Http://localhost:8888,可以看到,已经可以运行了:

VSCode如何开发TypeScript

如果只是希望编译,运行npm run build,生成js文件保存在dist目录中,index.html是引导页面。

“VSCode如何开发TypeScript”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: VSCode如何开发TypeScript

本文链接: https://www.lsjlt.com/news/323041.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c++中int和double有什么区别
    int 和 double 是 c++ 的数据类型,用于表示整数和浮点数。它们的关键区别在于:1. 范围:int 为整数,double 为浮点数且范围更大;2. 存储大小:int 占 4 ...
    99+
    2024-05-14
    c++ 隐式转换
  • C++ 多线程程序测试的挑战和策略
    多线程程序测试面临不可重复性、并发错误、死锁和缺乏可视性等挑战。策略包括:单元测试:针对每个线程编写单元测试,验证线程行为。多线程模拟:使用模拟框架在控制线程调度的情况下测试程序。数据竞...
    99+
    2024-05-14
    c++ 多线程
  • c++中深拷贝和浅拷贝的应用时间
    浅拷贝复制对象指针或引用,仅适用于不含动态分配内存或简单数据结构的对象;深拷贝复制实际数据,包括动态分配内存,适用于包含动态分配内存或复杂数据结构的对象。 浅拷贝和深拷贝的应用时间 在...
    99+
    2024-05-14
    c++
  • 探索用于 C++ 服务器架构的高级数据结构
    在 c++++ 服务器架构中,选择适当的高级数据结构至关重要。哈希表用于快速数据查找,树用于表示数据层次结构,图用于表示对象之间的关系。这些数据结构在实践中有着广泛的应用,例如缓存系统、...
    99+
    2024-05-14
    c++ 数据结构 社交网络 键值对
  • fixed在c++中的作用
    fixed 关键字在 c++ 中用于将浮点数存储为固定小数,提供更高精度,尤其适用于需要高精度的金融计算。fixed 将浮点数表示为具有固定小数位数的小数,默认情况下使用十进制表示法,小...
    99+
    2024-05-14
    c++
  • insert在c++中怎么用
    insert() 函数在 c++ 中用于在容器(如 vector、set)中插入元素,提供了一种动态调整容器大小并添加新元素的方法。它需要两个参数:要插入元素的位置 (pos) 和要插入...
    99+
    2024-05-14
    c++ 标准库
  • 如何使用 Golang 构建 RESTful API 并处理 JSON 响应?
    如何使用 golang 构建和处理 json 响应的 restful api步骤:创建 golang 项目并安装 gorilla mux。定义路由并处理 http 请求。安装 json ...
    99+
    2024-05-14
    golang git
  • c++中int和long的区别
    int 和 long 都是 c++ 中的整型类型,主要区别在于范围和存储空间:范围:int 为 32 位整数,范围为 [-2^31, 2^31-1];long 为 64 位整数,范围为 ...
    99+
    2024-05-14
    c++ 数据丢失
  • c++中int a(n)和int a[n]的区别
    int a(n)声明一个不可变的整型变量,而int a[n]声明一个可修改元素的整型数组,用于存储和处理数据序列或集合。 int a(n) 和 int a[n] 在 C++ 中的区别 ...
    99+
    2024-05-14
    c++
  • C++ 多线程编程中调试和故障排除的技术
    c++++ 多线程编程的调试技巧包括:使用数据竞争分析器检测读写冲突,并使用同步机制(如互斥锁)解决。使用线程调试工具检测死锁,并通过避免嵌套锁和使用死锁检测机制来解决。使用数据竞争分析...
    99+
    2024-05-14
    c++ 多线程 故障排除 同步机制
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作