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

  • 初装费包括什么
  • 进项税额转出要交企业所得税吗
  • 建筑业普票和专票的比例
  • 资本公积转增资本的账务处理
  • 甲是乙公司依法设立的分公司
  • 固定资产怎么进账
  • 应交税费负数调整
  • 技术转让所得免征企业所得税
  • 借贷记账法试算平衡的计算公式有
  • 税务稽查可否清算土地增值税
  • 个人购买房产是指什么
  • 固定资产期初余额在哪里录入
  • 普通发票电子发票没有章
  • 运输增值税专票含税价怎么算
  • 工程预算调整的主要内容
  • 支票能够拿来付款吗
  • 集团公司奖励发放遵循什么原则
  • 承兑贴息收入账务处理怎么做?
  • 红字发票如何填写摘要
  • 存货发出记账成本最高
  • 鸿蒙密码锁设置密码的方法
  • 跨年度增值税发票作废怎么退税
  • 销售门窗并安装如何缴纳增值税
  • PHP:oci_new_cursor()的用法_Oracle函数
  • avgorange是什么文件夹可以删除吗
  • ps命令不可用
  • 担保费可以计入什么科目
  • 部门活动经费怎么算
  • 分配股利怎么算
  • phpsubstr_replace
  • 行政事业单位资产负债表
  • php生成随机字母数字代码
  • 使用php进行mysql数据库编程的基本步骤
  • 企业所得税按季还是按年
  • ieee下载论文
  • 长期应付款列报为什么是后一年的
  • ssh-keygen命令
  • php PATH_SEPARATOR判断当前服务器系统类型实例
  • 建筑业增值税怎么算举例说明
  • 现金流是什么意思举例
  • 事业单位电费应该谁交
  • 考试费开什么发票税目
  • 公司pos机使用规范
  • 给员工买保险的好处和坏处
  • 归属净利润和扣非净利润看哪一个
  • sqlalchemy mongodb
  • mysql的启动方法(windows 平台)
  • 现代服务业进项抵扣新政策
  • 税控盘的费用做什么会计科目
  • 出口企业消费税怎么算
  • 公司员工食堂买菜没发票怎么办
  • 差旅费中火车票的进项税怎么计算
  • 车辆购置税如何账务处理
  • 销售免税农产品的会计分录
  • 工程物资原材料在资产负债表哪个科目体现
  • 招标公司的成本控制
  • 结转成本涉及的科目
  • 发票对方没有上传,无法勾选发票要怎么办
  • 鉴证咨询服务费可以抵扣吗
  • 加油吃饭开的发票抵什么税
  • 原始凭证填制要点在原始凭证上书写阿拉伯数字正确的有
  • 会计做账手工帐
  • 双系统怎么设置引导启动项
  • ubuntu netbook
  • win8如何开启蓝牙
  • macbook key
  • PSof1.exe - PSof1是什么进程 有什么作用
  • win8操作
  • win7怎么截屏幕
  • 无法装win7
  • win7怎么下到u盘
  • win8没有开始菜单 点键盘开始菜单黑屏
  • ES6 javascript中class静态方法、属性与实例属性用法示例
  • perl字符串长度函数
  • 合并多个js文件
  • cocos2dx 3.0 quick lua transition action
  • pm2启动nodejs
  • jquery validate表单校验长度
  • Android 4.4 Dialog 被状态栏遮挡的解决方法
  • 宁波北仑有哪些服装厂
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设