位置: IT常识 - 正文

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

发布时间:2024-01-14
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)

  • windows系统账户名和密码怎么看

    windows系统账户名和密码怎么看

  • 魅族18支持的快充是多少(魅族18支持哪些快充协议)

    魅族18支持的快充是多少(魅族18支持哪些快充协议)

  • 电脑热键冲突怎么修改(电脑出现热键冲突是怎么回事)

    电脑热键冲突怎么修改(电脑出现热键冲突是怎么回事)

  • 路由器管理账号和密码是什么(路由器管理账号怎么看)

    路由器管理账号和密码是什么(路由器管理账号怎么看)

  • 荣耀8X为啥没有录屏(荣耀8x为啥没有耳机孔)

    荣耀8X为啥没有录屏(荣耀8x为啥没有耳机孔)

  • 抖音极速版和抖音火山版有什么区别(抖音极速版和抖音互通吗)

    抖音极速版和抖音火山版有什么区别(抖音极速版和抖音互通吗)

  • 快手私信删了另一个手机登录能看见吗(快手私信删了另一个账号)

    快手私信删了另一个手机登录能看见吗(快手私信删了另一个账号)

  • 1020硒鼓型号(惠普1020c硒鼓型号)

    1020硒鼓型号(惠普1020c硒鼓型号)

  • 微信视频卡住不动有声音(微信视频卡住不动有声音跟别人视频不卡)

    微信视频卡住不动有声音(微信视频卡住不动有声音跟别人视频不卡)

  • 抖音播放量多少算热门(抖音播放量多少人工审核)

    抖音播放量多少算热门(抖音播放量多少人工审核)

  • 黑名单里的人换头像能看到吗(黑名单里的人换了头像会更新么)

    黑名单里的人换头像能看到吗(黑名单里的人换了头像会更新么)

  • i39100f和i39100有啥区别(i3 9100参数和i39100f)

    i39100f和i39100有啥区别(i3 9100参数和i39100f)

  • 为什么qq不能给别人点赞了(为什么qq不能给自己发文件)

    为什么qq不能给别人点赞了(为什么qq不能给自己发文件)

  • 红米note8pro支持无线快充吗(红米note8pro支持扩展内存吗)

    红米note8pro支持无线快充吗(红米note8pro支持扩展内存吗)

  • 快手红心可以一直点吗(快手红心可以一起看吗)

    快手红心可以一直点吗(快手红心可以一起看吗)

  • 手机后面的标签可以撕掉吗(手机后面的标签有什么用)

    手机后面的标签可以撕掉吗(手机后面的标签有什么用)

  • 电脑上可以下载抖音吗(电脑上可以下载韩剧tv吗)

    电脑上可以下载抖音吗(电脑上可以下载韩剧tv吗)

  • 抖音点赞上限了怎么办(抖音点赞上限了继续点赞)

    抖音点赞上限了怎么办(抖音点赞上限了继续点赞)

  • xr重启操作(iphone重启方法 xr)

    xr重启操作(iphone重启方法 xr)

  • 乐视视频如何截视频(乐视怎么截图手机屏幕)

    乐视视频如何截视频(乐视怎么截图手机屏幕)

  • VMware虚拟机安装Ubuntu 2022最新版详细图文安装教程(VMware虚拟机安装+Ubuntu下载+VMware虚拟机配置运行)(vmware虚拟机安装在移动硬盘)

    VMware虚拟机安装Ubuntu 2022最新版详细图文安装教程(VMware虚拟机安装+Ubuntu下载+VMware虚拟机配置运行)(vmware虚拟机安装在移动硬盘)

  • 快速显示隐藏WordPress顶部工具栏 WordPress Admin Bar Control(快速显示隐藏单元格)

    快速显示隐藏WordPress顶部工具栏 WordPress Admin Bar Control(快速显示隐藏单元格)

  • 行政单位基建管理办法
  • 预缴税款可以抵税吗
  • 怎么导出银行对账单流水
  • 燃气费的账务处理
  • 从银行提取现金用途
  • 异地施工如何缴工会经费
  • 专票丢失登报后怎么处理
  • 办公室低值易耗品管理员职责
  • 消费税的应纳税额的计算
  • 承租人转租是否要交税
  • 收到预付账款的分录
  • 多交增值税怎么调整
  • 转账支票遗失能挂失吗
  • 工业用地厂房要交契税吗
  • 关于330技术维护费
  • 农民专业合作经济组织可以贷款吗
  • 收到外单位奖励怎么回复
  • 累计折旧的计提和处理的分录
  • 工商注销债务承担
  • php内存占用
  • 查补以前年度企业所得税的申报处理
  • PHP:Memcached::setMultiByKey()的用法_Memcached类
  • replace.exe进程
  • 公司年终奖怎么缴税
  • 发票已认证当月未申报怎么办
  • CLIP模型原理
  • 短期借款产生的利息进入总账吗
  • 贷款的银行卡叫什么
  • 陈列费用明细表怎么做
  • 应税货物及劳务无法录入
  • ipcrm命令
  • dede转zblog
  • 固定资产的计提折旧在月初还是月末
  • cpu spread spectrum
  • discuz去除版权
  • 销售费用工资明细科目
  • 小规模超500万升一般纳税人规定
  • 现金流量表的填列方法
  • 劳务费800以上扣税标准
  • 织梦cms要钱吗
  • 在建工程转入固定资产后又发生了后期支出会计处理
  • 公司的投资利税是什么
  • 如何检查文件是否有毒
  • python repeat函数
  • 银行账本怎么记账
  • 个人所得税孩子教育怎么申报
  • 记账凭证填错了怎么办还没有登记账簿
  • 固定资产投资额怎么计算
  • sql server 2008 r2教程
  • sql server 2005 service pack3
  • 管理费用属于费用类吗
  • 哪些科目会影响损益
  • 个体工商户的免税证明
  • 公司不注销会坐牢吗
  • 租金收入如何分红给股东
  • 余利宝收益如何算
  • 母子公司可以合并吗
  • 非营利医疗机构什么意思
  • mysqlbinlog -vvv
  • Windows Server 2008添加Hyper-V组件
  • linux 解压.z
  • auepuc.exe是什么软件
  • xshell使用ssh命令远程连接linux
  • linux apache2配置
  • win7系统怎么设置开机启动项
  • linux删除sdb1
  • jquery邮箱正则表达式
  • cocos2dx游戏开发教程
  • cocos2d怎么用
  • python os.access
  • node.js app
  • js设置标签内容
  • unity开发平台
  • 安卓开发主要做什么
  • 安卓接口回调例子
  • python如何运用
  • 我是一般纳税人对方给我开的普票
  • 搞农业种植
  • 广东省国家税务总局稽查局局长
  • 个人股和公司股
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号