位置: IT常识 - 正文

TypeScript选项‘importsNotUsedAsValues‘和‘preserveValueImports‘弃用(typescriptlang)

编辑:rootadmin
TypeScript选项‘importsNotUsedAsValues‘和‘preserveValueImports‘弃用

推荐整理分享TypeScript选项‘importsNotUsedAsValues‘和‘preserveValueImports‘弃用(typescriptlang),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:typescript instanceof,typescript enum,typescriptreact,typescript import,typescript implements,typescript import,typescript enum,typescript import,内容如对您有帮助,希望把文章链接给更多的朋友!

TypeScript 从5.0开始,选项“importsNotUsedAsValues”和“preserveValueImports”已经被标记为Deprecated,并将在TypeScript5.5之后停止支持,可以使用“verbatimModuleSyntax”选项替代。

默认情况下,假如你在TypeScript中写下如下代码:

import { Car } from "./car";export function drive(car: Car) { // ...}

TypeScript检测到您只对类型定义导入,就会完全删除导入。输出的JavaScript可能如下:

export function drive(car) { // ...}

如果 ./car 文件中仅仅定义了type 或者interface,转换为javascript时这些定义被抛弃,是正确。但是,如果 ./car中的Car是一个class,里边还包括了一些其他定义。这个文件被抛弃。最终的javascript可能会产生Runtime error。

importsNotUsedAsValues选项就解决了这个问题。

此标志控制导入的工作方式,有三种不同的选项:

remove:丢弃没有使用的import。【默认值】preserve:保留所有的import,即使从来没有使用过的定义。error:基本上和preserve选项一致,但是,当值(value)被import仅用作 type 时会报错。如果您希望确保没有意外导入任何值,此时可以使用此选项。

preserveValueImports作用:

TypeScript选项‘importsNotUsedAsValues‘和‘preserveValueImports‘弃用(typescriptlang)

例如:

import { Animal } from "./animal.js";eval("console.log(new Animal().isDangerous())");

这样的代码编译器不知道是否该保留还是该抛弃。如果想保留,请使用preserveValueImports选项

importsNotUsedAsValues、preserveValueImports还有一个isolatedModules共三个选项,比较难以理解,有时候使用时仍旧有一些边缘情况导致非期盼的结果。

从TypeScript5.0开始,引入了verbatimModuleSyntax选项(值为 true,false)。使用type修饰符,就明确保留还是抛弃,以简化以上情况。

任何不带类型修饰符的导入或者导出都会被保留。任何使用类型修饰符的内容都将被完全删除。// This statement can be dropped entirely in JS outputimport type * as car from "./car";// The named import/export 'Car' can be dropped in JS outputimport { type Car } from "./car";export { type Car } from "./car";// Erased away entirely.import type { A } from "a";// Rewritten to 'import { b } from "bcd";'import { b, type c, type d } from "bcd";// Rewritten to 'import {} from "xyz";'import { type xyz } from "xyz";

使用此选项后,实现了所见即所得。有type修饰符的,明确只使用了定义,编译时直接抛弃;没有使用type修饰符的,编译时就会保留其内容。

一般情况下,vscode会首先使用自带的TypeScript版本。最近升级后TypeScipt默认都会是5.X版本。

如果想继续使用5.x版本,增加一个选项: 在tsconfig.json 中增加 "ignoreDeprecations": "5.0",就不再报警了。

项目如果想切换到4.X版本:

切换TypeScript版本:首先确保在本项目已经有TypeScript4.x 如果没有可以 npm install typescript @4.9 然后

第一种方法:快捷键:Ctrl + Shift + P 然后输入 Typescript: Select Typescript Version,选择本项目的版本。 第二种方法:打开一个ts或者tsx文件。右下角有TypeScript JSX字样,在左边的{ }上,鼠标悬停,在弹窗中点击目前的TypeScript版本。然后会让选择新的TypeScript版本。

OK,切换成功。

本文链接地址:https://www.jiuchutong.com/zhishi/295348.html 转载请保留说明!

上一篇:使用axis调用WebService,Java WebService调用工具类(客户端调用axis1.4的方式)

下一篇:Chrome浏览器中清除特定网站的Cookie数据(chrome浏览器清除数据)

  • 如何关闭iphone长按屏幕编辑(如何关闭iphone长按屏幕删除应用)

    如何关闭iphone长按屏幕编辑(如何关闭iphone长按屏幕删除应用)

  • 微信聊天记录莫名其妙没了怎么回事(微信聊天记录莫名其妙少了一部分)

    微信聊天记录莫名其妙没了怎么回事(微信聊天记录莫名其妙少了一部分)

  • 华为nova3怎么设置深色模式(华为nova3怎么设置24小时制)

    华为nova3怎么设置深色模式(华为nova3怎么设置24小时制)

  • 8plus几寸(8plus多大英寸)

    8plus几寸(8plus多大英寸)

  • 怎样屏蔽拼多多的拼小圈(怎样屏蔽拼多多朋友圈)

    怎样屏蔽拼多多的拼小圈(怎样屏蔽拼多多朋友圈)

  • 闪送怎么接单(闪送怎么接单的)

    闪送怎么接单(闪送怎么接单的)

  • 屏保怎么取消(电脑有广告屏保怎么取消)

    屏保怎么取消(电脑有广告屏保怎么取消)

  • 微信登录环境异常(微信登录环境异常怎么解封)

    微信登录环境异常(微信登录环境异常怎么解封)

  • 手机qq删好友是双删吗(手机qq删好友是单向吗)

    手机qq删好友是双删吗(手机qq删好友是单向吗)

  • 充电宝中间鼓起来了是怎么回事(充电宝中间鼓起来了会爆炸吗?)

    充电宝中间鼓起来了是怎么回事(充电宝中间鼓起来了会爆炸吗?)

  • mac电脑无限循环重启(苹果macbookpro无限循环启动)

    mac电脑无限循环重启(苹果macbookpro无限循环启动)

  • 苹果手机朋友圈图片不显示是什么原因(苹果手机朋友圈怎么发文字)

    苹果手机朋友圈图片不显示是什么原因(苹果手机朋友圈怎么发文字)

  • 主观镜头的作用(主观镜头是指)

    主观镜头的作用(主观镜头是指)

  • 500g和500ml是一样吗(500g和500ml是一样吗洗发水)

    500g和500ml是一样吗(500g和500ml是一样吗洗发水)

  • 微信签名为什么不显示(微信签名为什么改了还是原来的)

    微信签名为什么不显示(微信签名为什么改了还是原来的)

  • 笔记本鼠标右键怎么按(笔记本鼠标右键菜单怎么设置)

    笔记本鼠标右键怎么按(笔记本鼠标右键菜单怎么设置)

  • 操作系统为用户提供什么功能(操作系统为用户提供了两种类型的接口)

    操作系统为用户提供什么功能(操作系统为用户提供了两种类型的接口)

  • 如何快速提高qq亲密值(如何快速提高qq星星)

    如何快速提高qq亲密值(如何快速提高qq星星)

  • 华为是安卓系统吗(华为双系统)

    华为是安卓系统吗(华为双系统)

  • Reno Ace怎么设置嗨来电(oppo reno ace相机怎么开美颜)

    Reno Ace怎么设置嗨来电(oppo reno ace相机怎么开美颜)

  • 什么是数字化科技(什么是数字化科技手段)

    什么是数字化科技(什么是数字化科技手段)

  • 未保存的ppt去哪找(未保存的ppt怎么恢复)

    未保存的ppt去哪找(未保存的ppt怎么恢复)

  • xbox国行有必要解锁吗(xbox国行有必要买金会员吗)

    xbox国行有必要解锁吗(xbox国行有必要买金会员吗)

  • 无法加入群聊多久解封(无法加入群聊怎么回事)

    无法加入群聊多久解封(无法加入群聊怎么回事)

  • 荣耀9如何退回8.0(荣耀9怎么退回8系统)

    荣耀9如何退回8.0(荣耀9怎么退回8系统)

  • devops是什么(devops是什么的扩展)

    devops是什么(devops是什么的扩展)

  • 局域网的工作模式是什么?(局域网的工作模式及特点)

    局域网的工作模式是什么?(局域网的工作模式及特点)

  • yolox改进--添加Coordinate Attention模块(CVPR2021)(yolo改进方法)

    yolox改进--添加Coordinate Attention模块(CVPR2021)(yolo改进方法)

  • 稳岗返还多久能到账
  • 撤回或减少投资同撤资减资的区别
  • 出差加油算什么费用
  • 小规模没有成本票怎么做账
  • 月末怎么计提税费
  • 利息收入属于主体收入吗
  • 没有土地使用证可以过户吗
  • 固定资产替换公式
  • 什么是联营商品
  • 银行承兑汇票背书转让后怎么查询
  • 别人垫付的医药费,可以报销吗
  • 小规模纳税人附加税税率各是多少
  • 兼营免税减税项目
  • 水利基金按含税还是不含税申报
  • 增值税普通发票和专用发票有什么区别
  • 购买方申请的红字信息表需要邮寄给销售方吗
  • 个体工商户生产经营所得税税率表2021
  • 总分类账的账簿启用表怎么填
  • 公司可以对公司罚款吗
  • 小规模纳税人代理销售税率是多少
  • 以无形资产进行投资
  • 债务优化是做什么的工作
  • phpemail正则
  • php讲解
  • 国有土地使用权租赁
  • 调制解调器报告了一个错误怎么弄
  • 查补以前年度所得税如何申报
  • 怎么绕开中介找到房主
  • 企业购入的专利权属于什么
  • vue实现导出
  • 生产企业出口退税全部流程
  • 享受所得税优惠情况说明
  • 认缴没有实缴怎么做账
  • php如何实现
  • 固定资产进项抵扣新政策2021
  • 稽查增值税跨年了销项税额如何转出
  • 个人完税证明有什么用途
  • 怎么理解中国实际
  • 织梦的css样式在哪
  • 变动成本法的计算步骤
  • 阶段性减免社保费政策期限延长
  • 记账凭证摘要的填写要求有
  • 员工社保报销流程
  • 实收资本或股本什么意思
  • 税务自查补缴税款怎么办
  • 应记入营业外支出的科目核算是
  • 支付保证金如何做账务处理
  • 房地产开发企业资质管理规定
  • 哪些业务需要计提国别风险准备金
  • 关于端午节福利发放的通知(通知公告)
  • 外埠存款怎么读
  • 委托加工的成本如何核算
  • 企业的投资公司 私募
  • sql作业怎么执行
  • sqlserver临时表 效率
  • win8系统任务栏怎么隐藏
  • ubuntu英文系统安装中文输入法
  • OS X 10.12.6 beta 1如何更新 OS X 10.12.6 beta 1如何升级
  • 手机找回删除的文件
  • psimsvc.exe - psimsvc是什么进程 有什么用
  • win7开机chkdsk
  • web项目可以打包成jar包吗
  • linux调整桌面分辨率
  • linux中shell的作用
  • OKHttp源码解析-ConnectionPool对Connection重用机制&Http/Https/SPDY协议选择
  • cmd替换文件命令
  • activity启动流程图解
  • unity如何成一组
  • Python工程师面试题 与Python基础语法相关
  • div与script
  • 鼠标悬停时的动画效果
  • jquery常用选择器种类
  • 备忘录全部笔记
  • 需要缴税多少钱一个月
  • 灯具维修发票明细
  • 税控盘离线开票时间怎么查
  • 全国税务系统全面从严治党工作会议2023年
  • 高新区地税办税服务厅
  • 陕西税务干部学校副教授李刚简历
  • 新版零申报印花税怎么申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设