位置: 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浏览器清除数据)

  • 情侣支付宝怎么一起存钱(情侣支付宝怎么一起存钱花钱)

    情侣支付宝怎么一起存钱(情侣支付宝怎么一起存钱花钱)

  • 夸克app是干嘛用的(夸克app干嘛用的)

    夸克app是干嘛用的(夸克app干嘛用的)

  • 小米手机怎么滚动截屏(小米手机怎么滚动截屏长图)

    小米手机怎么滚动截屏(小米手机怎么滚动截屏长图)

  • 手机皮肤设置在哪里(手机皮肤在哪里设置方法)

    手机皮肤设置在哪里(手机皮肤在哪里设置方法)

  • 戴尔电脑录屏快捷键(戴尔电脑录屏快捷键没反应)

    戴尔电脑录屏快捷键(戴尔电脑录屏快捷键没反应)

  • 抖音怎么一张照片做一个视频(抖音怎么一张照片两个进度条)

    抖音怎么一张照片做一个视频(抖音怎么一张照片两个进度条)

  • 华为微信运动步数老是0(华为微信运动步数不动原因)

    华为微信运动步数老是0(华为微信运动步数不动原因)

  • 港版note10+支持5g网络吗(港版note10支持指纹支付吗)

    港版note10+支持5g网络吗(港版note10支持指纹支付吗)

  • vivox9手电筒不亮了怎么回事(vivox9i手机手电筒灯不亮咋办)

    vivox9手电筒不亮了怎么回事(vivox9i手机手电筒灯不亮咋办)

  • 一加7与Pro区别(一加7跟一加7pro区别)

    一加7与Pro区别(一加7跟一加7pro区别)

  • iphone6p电池多少毫安(iphone6plus电池多大)

    iphone6p电池多少毫安(iphone6plus电池多大)

  • 无法连接到网关是什么意思(小米电视无法连接到网关)

    无法连接到网关是什么意思(小米电视无法连接到网关)

  • 手机清理内存里的其他文件是什么(手机清理内存里的其他文件是什么能不能删除)

    手机清理内存里的其他文件是什么(手机清理内存里的其他文件是什么能不能删除)

  • qq怎么打开礼物收益(QQ怎么打开礼物背包)

    qq怎么打开礼物收益(QQ怎么打开礼物背包)

  • 怎样复制粘贴快手昵称(怎样复制粘贴快捷指令)

    怎样复制粘贴快手昵称(怎样复制粘贴快捷指令)

  • 华为荣耀20多少瓦快充(华为荣耀20多少像素)

    华为荣耀20多少瓦快充(华为荣耀20多少像素)

  • p20pro充电功率(p20pro充电功率多少)

    p20pro充电功率(p20pro充电功率多少)

  • 抖音测腿长的特效在哪(抖音测腿长的特效叫什么)

    抖音测腿长的特效在哪(抖音测腿长的特效叫什么)

  • 小米手机分身密码怎么改(小米手机分身密码忘了)

    小米手机分身密码怎么改(小米手机分身密码忘了)

  • 微信如何打开m4a文件(微信如何打开m4r文件)

    微信如何打开m4a文件(微信如何打开m4r文件)

  • 计算机病毒是(计算机病毒是什么)

    计算机病毒是(计算机病毒是什么)

  • 深度linux怎么更换账户图片? 用户头像的设置方法(深度linux使用入门教程)

    深度linux怎么更换账户图片? 用户头像的设置方法(深度linux使用入门教程)

  • 解决前端项目问题,uniapp运行微信开发工具小程序,出现× initialize报错,以及浏览器无法运行(前端项目中遇到的问题,如何解决)

    解决前端项目问题,uniapp运行微信开发工具小程序,出现× initialize报错,以及浏览器无法运行(前端项目中遇到的问题,如何解决)

  • 公司买车可以抵多少税100万
  • 定额发票可以用旧的营业执照发票章吗
  • 移动话费可以开企业发票吗
  • 用携税宝怎么申报增值税
  • 房地产企业承担的债务
  • 银行给企业的存款怎么存
  • 免费送试用装的话术
  • 运输增值税专票含税价怎么算
  • 某运输企业以客运,货运划分
  • 个人购买房屋的税
  • 可供出售金融资产发生减值会计处理
  • 单位存款账户按用途分为
  • 当月凭证做完怎么结转?
  • 银行承兑汇票和银行汇票的区别
  • 硬盘分区的原则主要有哪些
  • win11任务栏全部显示
  • 关闭windows defender实时防护
  • php的pdo
  • 事业单位需要交个人所得税吗
  • 经营免租期是什么意思
  • 公司资金被税务部门冻结
  • 一般股份支付的确认计量及帐务处理怎么做
  • 最贵的手机苹果
  • 一个简单的html文档一般且必须包含哪些标签
  • 其他应收款的审计重点不包括哪些
  • 选择简易计税方法计税的有
  • 设备维修产生的人工费怎么开发票
  • 显示国家税务总局东莞分局打来电话是诈骗还是正规电话
  • 简述php图像操作的基本步骤
  • vue的内置组件
  • 拦截器拦截html
  • chkdsk.exe/f命令
  • mysql事件使用方法
  • 应收账款周转率下降说明什么
  • 社保费已扣为什么显示欠缴
  • 事业单位电费应该谁交
  • 请问如何在
  • 附有销售退回条件的商品销售,如果不能对退货
  • 发票收到款项未付做什么凭证编制
  • 购买净资产为负数怎么办
  • 法定盈余公积的作用
  • sql server 2008 新建数据库
  • 生成100个[30-99]之内的随机数
  • 业务招待费的列支范围
  • 进销存有什么用
  • 企业收到赠送商品会计分录
  • 预付账款怎么记账
  • 汽车4s店收到保险佣金做账
  • 短期负债率和流动负债率
  • 银行承兑的购买
  • 技能培训费属于哪个科目
  • 从基本存款账户划款3万元 向开户银行转帐
  • 一般纳税人增值税减免政策2023
  • 小微企业取得的进项税能不能抵扣
  • 贷款利息支出属于财务费用吗
  • 银行对账单冲正的单据在财务软件哪里找
  • 公司的进账能打到私人卡上
  • 应纳税所得额收入总额包括
  • 金蝶系统如何设置套打
  • 无形资产的研发支出
  • 会议服务公司名称大全
  • win7系统资源管理器频繁未响应
  • Mac Chrome打开HTTPS证书错误问题解决方法
  • 360修复漏洞补丁一直下载
  • 透视投影的作用
  • nodejs formidable
  • intent传递数据的方法
  • js中math.pow
  • u盘备份系统操作步骤
  • js遍历获取指定数据
  • 台湾 游戏论坛
  • js如何修改style
  • javascript获取html元素的方法
  • JavaScript设置字体颜色
  • 安卓监听文件读写
  • js中类
  • 电子发票怎么汇总清卡
  • 河北省地税网上缴费平台
  • 长沙个体户怎么给员工交社保
  • 房没交契税和物业维修金房屋预告登记证明可以打印吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设