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

  • 荣耀60se怎么升级Magic UI 系统(荣耀60系统)

    荣耀60se怎么升级Magic UI 系统(荣耀60系统)

  • 淘宝付款方式怎么删除银行卡(淘宝付款方式怎么删除信用卡)

    淘宝付款方式怎么删除银行卡(淘宝付款方式怎么删除信用卡)

  • 抖音行程轨迹小汽车怎么弄(抖音行程轨迹小程序在哪)

    抖音行程轨迹小汽车怎么弄(抖音行程轨迹小程序在哪)

  • 苹果11手电筒的关闭方法是什么(iphone11手电筒没办法用)

    苹果11手电筒的关闭方法是什么(iphone11手电筒没办法用)

  • 苹果se2有快充吗(iphone se2有快充吗)

    苹果se2有快充吗(iphone se2有快充吗)

  • uefi boot什么意思

    uefi boot什么意思

  • 芒果tv投屏一直连接(芒果tv投屏一直在加载中)

    芒果tv投屏一直连接(芒果tv投屏一直在加载中)

  • iphone11怎么插卡(苹果11如何插卡 苹果手机插卡方法)

    iphone11怎么插卡(苹果11如何插卡 苹果手机插卡方法)

  • 该数字是文本类型可能导致计算结果出错(该数字是文本类型怎么转换为数字)

    该数字是文本类型可能导致计算结果出错(该数字是文本类型怎么转换为数字)

  • 芒果tv电脑版叫什么(芒果tv电脑客户端)

    芒果tv电脑版叫什么(芒果tv电脑客户端)

  • 手机上一个眼睛一样的图像是什么(手机上面一个眼睛)

    手机上一个眼睛一样的图像是什么(手机上面一个眼睛)

  • 点关注是什么意思(关注是什么意思?)

    点关注是什么意思(关注是什么意思?)

  • wled和led的区别(wled和led的买哪个好些)

    wled和led的区别(wled和led的买哪个好些)

  • 荣耀v30有没有呼吸灯(华为荣耀v30怎么设置呼吸灯)

    荣耀v30有没有呼吸灯(华为荣耀v30怎么设置呼吸灯)

  • qq删除的照片怎么找回来(qq删除的照片怎么恢复)

    qq删除的照片怎么找回来(qq删除的照片怎么恢复)

  • 抖音举报对方会怎样(抖音举报对方会收到投诉原因吗)

    抖音举报对方会怎样(抖音举报对方会收到投诉原因吗)

  • i音乐怎么收藏歌单在哪里(apple music如何收藏艺人)

    i音乐怎么收藏歌单在哪里(apple music如何收藏艺人)

  • 拼多多会员怎么取消(拼多多会员怎么退款)

    拼多多会员怎么取消(拼多多会员怎么退款)

  • 苹果11por是双卡双待吗(苹果11por是双卡待机吗)

    苹果11por是双卡双待吗(苹果11por是双卡待机吗)

  • v网通话时长怎么使用

    v网通话时长怎么使用

  • 微淘等级在哪里看(微淘等级高有什么好处)

    微淘等级在哪里看(微淘等级高有什么好处)

  • xsmax怎么换微信提示音(苹果xsmax怎么更换微信铃声)

    xsmax怎么换微信提示音(苹果xsmax怎么更换微信铃声)

  • word怎么固定下划线长度(word怎么固定下划线不动)

    word怎么固定下划线长度(word怎么固定下划线不动)

  • 实况照片怎么发朋友圈(实况照片怎么发给别人)

    实况照片怎么发朋友圈(实况照片怎么发给别人)

  • 微软 Win11 正式版推出快两个月,已发布新的和正测试功能大盘点(windows 11 正式版实际使用体验如何?)

    微软 Win11 正式版推出快两个月,已发布新的和正测试功能大盘点(windows 11 正式版实际使用体验如何?)

  • keyhook.exe是什么进程 有什么作用 keyhook进程查询(onekey.exe是什么)

    keyhook.exe是什么进程 有什么作用 keyhook进程查询(onekey.exe是什么)

  • 增值税发票综合服务平台错误代码35
  • 安装服务费增值税专票税率多少
  • 城市维护建设税是什么意思
  • 预收账款可以开票吗
  • 其他债权投资的交易费用计入什么科目
  • 公章损坏更换的费用怎么记账
  • 分公司小规模
  • 税金及附加包括什么
  • 企业所得税财务费用借款利息扣除标准
  • 房地产企业土地增值税
  • 建筑劳务适用税率
  • 建筑企业预收款开具不征税发票为什么要预缴
  • 建筑业预缴税款是什么意思
  • 租赁房屋增值税
  • 公司代垫个税会计分录
  • 未取得发票的收入怎么做账
  • 解除合同补偿金需要缴纳个税吗
  • 小规模餐饮业会计核算
  • 关于预计负债应付退货款明细科目
  • 低值易耗品摊销什么意思
  • 劳务费增值税发票是劳务单位开吗
  • 技术转让所得一百万交多少税
  • 金税盘全额抵扣分录
  • 纳税人提供植物油的税率
  • 非同一控制下投资收益怎么计算
  • 发票认证后失控
  • 多计提企业所得税费用会计分录
  • 出差人什么意思
  • 备用金借款单怎么写
  • 非贸易企业代扣代缴增值税和附加税如何做账?
  • 特种设备年检费怎么开具发票
  • 个人车辆过户给公司
  • 购房专票可以抵扣进项税吗为什么
  • 怎么让别人无法访问我的qq空间
  • 税控盘减免税款结转会计分录
  • launcheflc.exe什么意思
  • Linux系统中sort排序命令的使用教程
  • 木制家具出口流程
  • 来料加工 增值税
  • 库存股属于什么
  • php列表
  • 前端进阶教程
  • 编程中char什么意思
  • tokenizer.encode、tokenizer.tokenize、tokenizer.encode_plus的用法差异
  • php的time函数
  • 电影院是否征收文化建设事业费
  • 应收票据和应付票据
  • 生产企业成本会计做账流程
  • 备抵类是什么意思
  • 品种法的特点有( )
  • 个人独资企业购入设备可以一次性计提吗
  • 亏损企业对外捐赠的税前扣除
  • 融资租赁固定资产折旧年限
  • 产品因质量问题换新质保期如何计算
  • 购买银行理财产品的几个必须知道
  • 多年没有做账该怎么说
  • 企业所得税需要计提分录
  • 冲减和冲销的会计分录
  • 所得税汇算清缴前取得跨年发票
  • sql中的存储过程
  • mysql不能识别中文怎么解决
  • mac 命令大全
  • linux ifconfig命令详解
  • hyper-v以后安装操作系统
  • vim的配置文件名
  • win10系统怎么添加ip地址
  • webuploader使用教程
  • js多选
  • jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
  • javascript生成随机整数
  • js赋值input
  • jQuery实现table中的tr上下移动并保持序号不变的实例代码
  • Android support v7 ActionBarActivity 过时
  • js格式化时间戳
  • 使用jQuery制作动画与特效及插件的应用
  • 使用jquery实现的项目
  • 浙江国地税联合电子税务局
  • 江西社保申报时间
  • 酒精税收分类编码查询
  • steam充值码生成
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设