TS学习(二) :安装ts与ts配置

2023-11-09

一、安装TypeScript

npm i -g typescript

二、安装完成后

创建ts 使用ts语法 可能遇到的报错问题

  • 在啥都没配置的默认情况下,TS会做出下面几种假设:

    • 假设当前的执行环境是dom

    • 如果 代码中没有使用模块化语句(import,export),便认为改代码是全局执行

    • 编译的目标是ES3,有点低

  • 有两种 方式更改以上假设

    • 使用tsc命令行的时候加上选项参数

    • 使用ts配置文件,更改编译选项

这里选择使用ts配置文件来进行更改编译选项

  • 方法1:直接在更目录下创建 tsconfig.json

  • 方法2:直接使用命令行 tsc --init

      成功后会显示: Successfully created a tsconfig.json file
    
  • 配置文件内容

    {
      "compilerOptions": {
          "target": "es2016",                                  
          "module": "commonjs",     
          "lib":["es2016"],
      },
      "include":["./src"]
      //"files":["./src/index.ts"]
    }
  • compilerOptions 配置可选项

    • target 配置编译目标代码的版本标准

    • module 配置编译目标使用的模块化标准

    • lib 表示默认详情下ts使用的是那一个环境

      注意 它默认是dom环境,这里我们不在dom环境中所以不加入,
      
      我们在node环境中,所以我们必须得安装一个包 @types/node 这个包表示可以运行node环境的代码,如果不添加这个包 则在node环境下,连console.log都无法使用
      
      npm i -D @types/node
      
    • include:

      • 在一般情况下我们创建文件不肯能随便乱创建,这使得项目乱,为了代码的整洁性,我们一般会把ts文件都放在根目录的src文件夹下,这样代码看上去不会太乱;
      • 但是编译在用tsc命令去编译代码时,它会去编译整个项目下的ts文件,而我们只想编译src下面的文件,这时就可以使用include配置了 它是一个数组, 数组里面放需要编译的路径比如只想编译src下面的ts文件,则只需要像这样写就可与['./src'],当然这个是当前项目根路径下的src,如果想要编译其他文件夹只要路径对了就可以了;
      • : 数组里面的路径有["./src"]就可以了,你不要再去写./src下面的路径了如这样的["./src","./src/a/a.ts"],这样写后面是的是没有效果的,不要问我问什么用,因为我试了,
      • 当然也有可能tsc内部编译时这样处理的,先把"./src"下面的文件编译一遍,然后在去把"./src/a/a.ts"文件编译一遍,就是循环遍历数组["./src","./src/a/a.ts"],然后把改地址下面的文件 编译一遍最后合并在一块(有可能是这样的,没去看源码目前还不知,只是猜想);
      • 还有可能是先把数组["./src","./src/a/a.ts"]里面的路径给去重,去重复后再去进行编译合并(这个也是有可能,这个应该比第一个效率高吧,编译文件应该比找相同的路径更耗时吧);
    • files:有一种情况就是,我只想要编译一个文件而不是整个文件夹,这时就可以使用files配置了,它也是一个数组,内容当然是文件的路径了

配置文件就先到这里,后续学习过程中会慢慢加上

项目已经配置好了,也可以编译运行了,想要运行编译后的结果

  • 可以使用命令 node .\dist\想要运行的js文件 当然前提是你得先tsc先编译

  • 由于这样的方式太复杂 想要简化流程则可以使用第三方库来简化

    • ts-node: 将ts代码 在内存中完成编译,同时完成运行;安装完成后,就可以执行命令 ts-node src/想要执行的ts;执行玩后他就会把你ts编译并输出了; 但这个时候你会发现,我好像项目中没有dist文件,因为你在开发阶段,不需要你打包dist文件,就像vite一样

      安装库 npm i -g ts-node
      
    • nodemon: 在使用ts-node 时 你每次更改ts代码后就要重新执行命令ts-node,有点麻烦,而nodemon 就不需要重新执行命令,改了代码后就会自动执行

      • 安装前先初始化一下项目npm init然后在 安装nodemon: npm i -g nodemon;

      • 如何执行nodemon命令:nodemon --exec ts-node src/需要执行的文件;意思是:当文件变化时(nodemon),去执行(exec),ts-node这个命令; 但这个命令还是有点长,这时我们就可以放到 package.json里面,把它写成一个脚本,如下,之后我们要启动开发工程就可以直接使用命令 npm run dev 就可以了;

        "script":{
          "dev": "nodemon --exec ts-node src/index.ts"
        }
        
      • 但是这里会有一些不好的地方就是,不管你改变啥文件,它都会去监听然后重新编译,而我们只想改变ts文件保存时去编译,改变其他文件不去编译,这时我们就可以在nodemon 后面加上-e ts, 表示你要监控的文件扩展名是ts nodemon -e ts --exec ts-node src/需要执行的文件

        "script":{
            "dev": "nodemon --exec ts-node src/index.ts"
        }
        
      • 但这样也有问题,就是我只想去修改src目录下的ts才去重新编译,修改其他目录下的ts文件不编译,那我们就可与在加watch src 只监听src下的ts文件 nodemon --watch src -e ts --exec ts-node src/需要执行的文件

        "script":{
          "dev": "nodemon --watch src --exec ts-node src/index.ts"
        }
        

到这里前期的准备工作完成了,接下来就是ts的学习了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TS学习(二) :安装ts与ts配置 的相关文章

随机推荐

  • 区块链会给医药行业带来哪些改变?

    我不是药神 上映以来好评如潮 票房大涨 是一部叫好又叫座的佳作 不仅豆瓣评分9 0 更被人民日报誉为近年来难得一见的经典电影 该片真实再现了白血病群体的生存现状 让观众对白血病患者有了深刻的认知 也将一个残酷的现实摆在面前 一场大病足以让一
  • 编译Hi3516DV300的SDK

    前言 如果您之前编译过EV200的SDK 那么您会发现 编译DV300的过程很类似 软件包直接拷贝 无需重新下载 通常在1 2个小时内能搞定SDK的编译 DV300的入门会简洁介绍 如果遇到编译错误 请你阅读EV200的编译过程和相应目录下
  • ACL 2023 :大模型的安全与可靠性、复杂逻辑查询、情感分析等

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入 哔哩哔哩直播通道 扫码关注AI TIME哔哩哔哩官方账号预约直播 13 30 13 50 Yu Zhou NonSequential Graph Script Induction
  • jmap命令详解

    JVM常见命令之jmap jmap命令详解 jmap是一个很重要的命令 可以查看JVM内存使用情况 jmap帮助文档 参数解释 option 选项参数 pid 需要打印配置信息的进程ID executable 产生核心dump的Java可执
  • Linux学习笔记——例说makefile 头文件查找路径

    0 前言 从学习C语言开始就慢慢开始接触makefile 查阅了很多的makefile的资料但总感觉没有真正掌握makefile 如果自己动手写一个makefile总觉得非常吃力 所以特意借助博客总结makefile的相关知识 通过例子说明
  • Python os模块相关简介

    Python里os path isdir 等函数的作用和用法 一 用法和概念 Python里的os模块用于和系统进行交互 其里 os listdir 用于返回一个由文件名和目录名组成的列表 需要注意的是它接收的参数需要是一个绝对的路径 os
  • 使用 Docker 快速上手中文版 LLaMA2 开源大模型

    本篇文章 我们聊聊如何使用 Docker 容器快速上手朋友团队出品的中文版 LLaMA2 开源大模型 国内第一个真正开源 可以运行 下载 私有部署 并且支持商业使用 写在前面 感慨于昨天 Meta LLaMA2 模型开放下载之后 GitHu
  • C++中随机数的生成

    一 伪随机数 在C 中要生成随机数 首先要include一个文件
  • 手机屏幕测试html,华为手机屏幕检测代码是什么

    类型 系统工具大小 1 4M语言 中文 评分 10 0 标签 立即下载 华为手机很多操作代码用户记住后是可以快捷使用的 有小伙伴想要进行屏幕检测 那华为手机屏幕检测代码是什么 西西小编来为大家介绍 华为手机屏幕检测代码是什么 华为手机屏幕检
  • C语言最大子序列和三种常用解决方法

    注 看不懂评论区提问 有问必答 问题 给定K个整数组成的序列 N 1 N 2 N K 连续子列 被定义为 N i N i 1 N j 其中 1 i j K 最大子列和 则被定义为所有连续子列元素的和中最大者 例如给定序列 2 1 3 4 1
  • BGP一网双平面实验

    实验说明 1 A面 顶面 路由器在AS2 B面 底面 路由器在AS3 宁波路由器在AS1 西安路由器在AS4 2 IP设计 协议号设计如图所示 3 宁波办公路由IP 10 100 1 1 业务路由IP10 100 2 2 西安办公路由IP1
  • Windows 注册表(Registry) 学习

    目录 一 注册表 Registry 介绍 1 注册表简介 2 开启 禁用 注册表编辑器 3 注册表位置 二 注册表的结构 三 修改注册表实现 应用程序开机自启动 一 注册表 Registry 介绍 1 注册表简介 注册表是windows系统
  • 【安装文档】TRex流量分析仪保姆级安装指南--基于VMware虚拟机(ubantu18.04@Intel 82545EM

    前言 DPDK 网络数据开发中文网开发中文网致力于整理收录dpdk spdk ovs vpp dpvs virtiohost sdn ovn qemu等方向 的github开源项目 资料文档 书籍 讲解视频 各大企业招聘信息 23 1 12
  • react hooks useCallback useMemo的区别

    最近在看react hooks useState和useEffect较好理解 到useCallback和useMemo的时候 看官网不太懂 后来通过查阅资料 算是搞明白了 下面实例都是基于react native 不过原理和react是一样
  • Oracle ADG自动切换脚本分享

    为大家分享一个 Oracle ADG自动切换 的脚本 由云和恩墨工程师HongyeDBA编写 支持Switchover Failover 下载链接 https www modb pro download 5 DG环境需求 DG使用服务名必须
  • Python之匿名函数lambda使用方法

    文章目录 一 lambda函数介绍 1 1 语法 1 2 特性 1 3 示例 二 结合内置函数 map filter 使用 2 1 python内置的map 2 2 python内置的filter 一 lambda函数介绍 1 1 语法 在
  • golang面试题:json包变量不加tag会怎么样?

    问题 json包里使用的时候 结构体里的变量不加tag能不能正常转成json里的字段 怎么答 如果变量首字母小写 则为private 无论如何不能转 因为取不到反射信息 如果变量首字母大写 则为public 不加tag 可以正常转为json
  • Android 如何从活动向碎片传递数据

    踩了些坑 做个笔记 方便以后看 方法一 利用碎片的setArguments 方法传递bundle 首先 先穿插一个活动间传递数据的方法 活动间传递数据 两种方法 方法一 直接使用intent提供的put方法 如putString putpu
  • Java操作pdf的工具类itextpdf

    一 什么是iText 在企业的信息系统中 报表处理一直占比较重要的作用 iText是一种生成PDF报表的Java组件 通过在服务器端使用Jsp或JavaBean生成PDF报表 客户端采用超链接显示或下载得到生成的报表 这样就很好的解决了B
  • TS学习(二) :安装ts与ts配置

    一 安装TypeScript npm i g typescript 二 安装完成后 创建ts 使用ts语法 可能遇到的报错问题 在啥都没配置的默认情况下 TS会做出下面几种假设 假设当前的执行环境是dom 如果 代码中没有使用模块化语句 i