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

  • 华为荣耀20青春版是双系统吗(华为荣耀20青春版上市时间和价格)

    华为荣耀20青春版是双系统吗(华为荣耀20青春版上市时间和价格)

  • 华为手机勿扰模式闹钟响吗(华为手机勿扰模式怎么设置)

    华为手机勿扰模式闹钟响吗(华为手机勿扰模式怎么设置)

  • 抖音可以通过手机号搜索吗(抖音可以通过手机号加人吗)

    抖音可以通过手机号搜索吗(抖音可以通过手机号加人吗)

  • 淘宝积分怎么快速获得(淘宝积分怎么得到)

    淘宝积分怎么快速获得(淘宝积分怎么得到)

  • ipv4dns的服务器填什么(ipv4dns的服务器需要加密吗)

    ipv4dns的服务器填什么(ipv4dns的服务器需要加密吗)

  • 微信怎样换字体风格(微信怎样换字体样式)

    微信怎样换字体风格(微信怎样换字体样式)

  • 电脑上如何撤销返回到上一步(电脑上如何撤销复制粘贴文件)

    电脑上如何撤销返回到上一步(电脑上如何撤销复制粘贴文件)

  • 华为p10怎么关闭颜色反转(华为p10怎么关闭自动更新系统)

    华为p10怎么关闭颜色反转(华为p10怎么关闭自动更新系统)

  • 应用程序正常初始化0xc0000142(应用程序正常初始化失败怎么解决)

    应用程序正常初始化0xc0000142(应用程序正常初始化失败怎么解决)

  • 腾讯课堂和腾讯会议一样吗(腾讯课堂和腾讯课堂极速版有什么区别)

    腾讯课堂和腾讯会议一样吗(腾讯课堂和腾讯课堂极速版有什么区别)

  • 个人热点频率什么意思(热点频段越高越好吗)

    个人热点频率什么意思(热点频段越高越好吗)

  • 消息列表在哪里(微信评论的消息列表在哪里)

    消息列表在哪里(微信评论的消息列表在哪里)

  • win10完全清理驱动器的后果(win10完全清理驱动器电脑还能用吗)

    win10完全清理驱动器的后果(win10完全清理驱动器电脑还能用吗)

  • 微信不点开看不到信息怎么回事(微信不点开看不到信息提示)

    微信不点开看不到信息怎么回事(微信不点开看不到信息提示)

  • 拼多多精品推荐消除(拼多多精品推荐内容怎么换)

    拼多多精品推荐消除(拼多多精品推荐内容怎么换)

  • word邮件合并全部记录(word2020邮件合并)

    word邮件合并全部记录(word2020邮件合并)

  • 怎么在抖音上卖东西(怎么在抖音上卖衣服)

    怎么在抖音上卖东西(怎么在抖音上卖衣服)

  • 电信卡信号差网慢怎么办(电信卡信号变弱)

    电信卡信号差网慢怎么办(电信卡信号变弱)

  • word文档怎么样求和(word文档怎么样单独一页横向)

    word文档怎么样求和(word文档怎么样单独一页横向)

  • 苹果超200怎么下载(苹果机超过200m怎么下载)

    苹果超200怎么下载(苹果机超过200m怎么下载)

  • 阿里众包如何取消授权(阿里众包怎么退出)

    阿里众包如何取消授权(阿里众包怎么退出)

  • 手机连不上蓝牙音响怎么回事(手机连不上蓝牙设备是哪出问题了)

    手机连不上蓝牙音响怎么回事(手机连不上蓝牙设备是哪出问题了)

  • Pinia基础知识(基础知识讲解)

    Pinia基础知识(基础知识讲解)

  • 轨迹误差评估指标[APE/RPE]和EVO[TUM/KITTI](轨迹评价)

    轨迹误差评估指标[APE/RPE]和EVO[TUM/KITTI](轨迹评价)

  • JavaScript随手笔记---对比数组差异(随手写-精美笔记本-日记本安卓下载)

    JavaScript随手笔记---对比数组差异(随手写-精美笔记本-日记本安卓下载)

  • 公司换股东需要本人去吗
  • 计提工资时个税怎么处理
  • 企业所得税的计算公式
  • 园林绿化公司范围
  • 公司研发人员定义
  • 在建工程和预付款项调整
  • 代销商品怎么交增值税
  • 停车场自助缴费系统
  • 跨年度其他业务收没有结转入调整
  • 总公司可以给分公司买车吗
  • 计提税费怎么写分录
  • 全额计提坏账符合的条件
  • 收到发票冲预付账款摘要怎么写
  • 固定资产盘盈可计入
  • 房地产开发企业预缴增值税
  • 印花税应税凭证填是还是否
  • 施工单位项目部牌子
  • 纳税人必知的十七项增值税开票指南
  • 公司租土地建厂房应该怎么做账呢?
  • 营业成本包括哪些会计科目
  • 建筑劳务预缴税款后怎么申报
  • 新版edge浏览器如何恢复设置
  • 交付是不是法律行为
  • 哪些进项税可以加计抵减
  • 汽车销售私下收客户红包
  • 为什么WIN10系统打在画面进不去
  • 医院装修设计费一般多少钱一平方
  • 销售方怎么申请红字信息表
  • 武侯祠红墙在哪个门
  • 预缴的附加税怎么填表抵减
  • 学生个人网页制作html5
  • php怎么写数据库
  • 工会经费计提分录怎么写
  • 败诉方承担诉讼费缴直接付给法院还是胜诉方
  • umount -l命令
  • thinkphp教程
  • php字符串比较函数怎么写
  • 坏账准备备案申请资料
  • java线程的执行体
  • 二手车交易规则最新
  • 简易征收销售额是什么意思
  • 汇算清缴报表填报顺序
  • mysql 索引 key
  • 个体工商户增值税怎么计算
  • 保洁服务属于
  • 土地使用权的界定
  • 购入农产品的增值税税率是多少
  • 以旧换新价格怎么确认
  • 递延所得税会计处理全过程
  • 成本费用占营业收入比重
  • 长期应收款是否计提坏账准备
  • 出纳建账的基本流程
  • 专用发票账目不对怎么办
  • Linux下MySQL 5.6.27 安装教程
  • sql2008数据库mdf文件 恢复
  • 64位win7旗舰版右下角音量小喇叭图标不见了怎么找回?
  • 使用dhcp的好处有哪些
  • ubuntu系统鼠标没反应
  • centos 怎么用
  • linux连接ssr
  • xp系统无法预览图片
  • dghm.exe是什么程序
  • 超级管理员不能用winhello
  • win8系统多少位
  • cocos2dx CardinalSpline和CatmullRom算法
  • textview可以点击吗
  • python socketio
  • 安卓域名重定向
  • python函数菜鸟教程
  • vue全家桶包含哪些
  • dom编程艺术这本书好吗
  • javascript的语句
  • node.js的安装步骤
  • BootStrap glyphicon图标无法显示的解决方法
  • javascript数据结构与算法第三版
  • 60后歌手有哪些
  • 如何安装金税三期app
  • 2016年小微企业所得税标准
  • 买新房子需要交契税吗
  • 出成效的意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设