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

  • 苹果13promax怎么设置游戏模式(苹果13promax怎么分屏)

    苹果13promax怎么设置游戏模式(苹果13promax怎么分屏)

  • 腾讯王卡怎么退订(腾讯王卡怎么退订5g套餐)

    腾讯王卡怎么退订(腾讯王卡怎么退订5g套餐)

  • xsmax是支持wifi6的吗

    xsmax是支持wifi6的吗

  • iphone原装充电头发烫(iphone原装充电头多少钱)

    iphone原装充电头发烫(iphone原装充电头多少钱)

  • 微信正在运行点击了解详情或停止应用(微信正在运行点击了解详情或停止应用是什么意思)

    微信正在运行点击了解详情或停止应用(微信正在运行点击了解详情或停止应用是什么意思)

  • 小翼管家为什么闪退(小翼管家为什么不能接入设备)

    小翼管家为什么闪退(小翼管家为什么不能接入设备)

  • 不用手机号微信注册新号怎么注册(不用手机号微信登录的聊天软件)

    不用手机号微信注册新号怎么注册(不用手机号微信登录的聊天软件)

  • 如何解除电脑主板保护(如何解除电脑主机控制)

    如何解除电脑主板保护(如何解除电脑主机控制)

  • 华为畅连语音什么意思(华为畅连语音能被监听么)

    华为畅连语音什么意思(华为畅连语音能被监听么)

  • a1491是ipad几(平板a1491是ipad几代?)

    a1491是ipad几(平板a1491是ipad几代?)

  • 苹果格式化了照片能恢复吗(iphone格式化之后恢复照片)

    苹果格式化了照片能恢复吗(iphone格式化之后恢复照片)

  • 淘宝ifashion如何进入(淘宝的ifasion)

    淘宝ifashion如何进入(淘宝的ifasion)

  • word自动换行符在哪里(word自动换行符怎么去掉)

    word自动换行符在哪里(word自动换行符怎么去掉)

  • 手机锁屏怎么取消(手机锁屏怎么取消掉)

    手机锁屏怎么取消(手机锁屏怎么取消掉)

  • 平板电脑为什么下载不了软件(平板电脑为什么这么便宜)

    平板电脑为什么下载不了软件(平板电脑为什么这么便宜)

  • 前置摄像头里面进灰尘了怎么办(前置摄像头里面有脏东西怎么办)

    前置摄像头里面进灰尘了怎么办(前置摄像头里面有脏东西怎么办)

  • 荣耀20s跑分安兔兔多少

    荣耀20s跑分安兔兔多少

  • e-mobile7服务器地址怎么填(e-mobile7服务器地址是多少)

    e-mobile7服务器地址怎么填(e-mobile7服务器地址是多少)

  • 苹果手机在哪下载东西(苹果手机在哪下载文件)

    苹果手机在哪下载东西(苹果手机在哪下载文件)

  • vivo手机怎么显示流量(vivo手机怎么显示时间和日期)

    vivo手机怎么显示流量(vivo手机怎么显示时间和日期)

  • 路由器被关掉怎么开启(路由器关掉怎么开)

    路由器被关掉怎么开启(路由器关掉怎么开)

  • 酷狗音乐怎么上传到陌陌(酷狗音乐怎么上传自己的音乐作品?)

    酷狗音乐怎么上传到陌陌(酷狗音乐怎么上传自己的音乐作品?)

  • 如何破解不支持此配件(不支持解锁请切换到常规模式)

    如何破解不支持此配件(不支持解锁请切换到常规模式)

  • 知道抖音号怎么查电话(知道抖音号怎么找回抖音账号)

    知道抖音号怎么查电话(知道抖音号怎么找回抖音账号)

  • phpcms注册会员操作失败(phpcms邀请注册送积分)

    phpcms注册会员操作失败(phpcms邀请注册送积分)

  • 初级会计职称能加多少工资
  • 职工薪酬纳税调减的情况
  • 会计电算化的内容及过程
  • 中国电子口岸证书错误
  • 企业人员信息已存在无需新增
  • 如何进行银行存款的实质性程序
  • 企业一直亏损但是汇算清缴调增
  • 房地产增值税怎么算举例说明
  • 公司利润如何提取避税
  • 外经证提交一般要多久可以通过
  • 企业大股东减持股份
  • 期初建账以前年度损益调整怎么转?
  • 老板想提取销售公积金
  • 购进免税农产品怎么计算进项税额
  • 契税法律依据
  • 所得减免优惠明细表减免项目包括几项
  • 企业怎么进行税务申报
  • 买了税控盘还需要买打印机吗
  • 营业额包括增值税吗
  • 小规模纳税人不用交增值税吗
  • 劳务公司的主营业务成本是人工工资需要个人开发票吗?
  • 为什么利息收入是负数
  • 会计报表怎么处理
  • 10万以下免征增值税 文件
  • win10取消登陆密码
  • 物业公司给业主的生日祝福
  • 笔记本电脑连无线网老是掉线怎么回事
  • 暂估营业成本怎做分录
  • mmtray2k.exe有什么作用 是什么进程 mmtray2k进程查询
  • avgnt.exe
  • 知识产权作用
  • css实现轮播图侧边阴影效果
  • 老生常谈php中传统验证与thinkphp框架(必看篇)
  • thinkphp框架的作用
  • 机器学习论文源代码浅读:Autoformer
  • 微信小程序详细教程
  • 物业代收代缴费 没住户怎么办
  • python中字符串的长度怎么算
  • 研发支出相关科目
  • 增值税年末所有都要结平吗
  • 什么是俗称的汇款
  • 完全卸载mysql8.0
  • 普通征税差额征税和减按征税
  • 电子钥匙报税
  • 本年利润和利润分配属于什么账户
  • 财政拨入的专项款专账怎么做
  • 应交税费属什么类科目
  • 年金现值的含义
  • 零税率发票有法律效力吗
  • 贸易公司如何结转销售成本
  • 出口货物不免不退
  • 公司贷款手续如何办理流程
  • 以前年度损益调整怎么做账
  • 应收账款的金额包括增值税吗
  • 存出保证金的账务处理
  • ゆうちょ银行转账步骤
  • mysql多字段排序原理
  • 没有光驱有什么影响
  • WebProxy.exe - WebProxy是什么进程
  • win7怎么关闭自带键盘
  • manager是啥
  • windows8怎么进入bios
  • win10系统怎么拦截广告弹窗
  • win7c盘winsxs
  • win10 Mobile 10586.36预览版更新了哪些内容?
  • opengl怎么学
  • GLSL Tessellation Shader的编程入门介绍
  • qat开发
  • cocos2d教程
  • css新闻页面制作
  • linux 监视器
  • 很全面的成语
  • 江苏税务开票申报操作
  • 已经开具的专用发票
  • 电子专票红字信息表
  • 出口退税账户标识是否怎么选
  • 福建原盐和自然盐有什么区别
  • 税务2021年认真落实各项工作
  • 明星征税多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设