关于import type引入的理解

import type 是 ECMAScript 模块系统中的一种语法,用于引入类型信息而不引入实际的运行时代码。它通常与 TypeScript 类型检查工具一起使用。

 举个例子:

// types.ts
export interface MyType = {id: number;name: string;
};// main.ts
import type { MyType } from './types';const myVariable: MyType = {id: 1,name: 'test',
};

在这个例子中,我们使用import type引入 编译后的 JavaScript 代码不包含类型信息: 

  • 这是 main.ts 文件的编译结果 ,main.js生成的 JavaScript 代码中只包含了变量的声明和赋值,并没有 MyType 的定义,因为 import type { MyType } from './types'; 语句并没有引入实际的类型定义到生成的 JavaScript 代码中。
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const myVariable = {id: 1,name: 'test',
};

PS: "use strict"; 以及 Object.defineProperty(exports, "__esModule", { value: true }); 是 TypeScript 编译器为了处理 ES Module 规范而生成的代码。

举个反例:

// types.ts
export interface MyType = {id: number;name: string;
};// main.ts
import { MyType } from './types';const myVariable: MyType = {id: 1,name: 'test',
};

在这个例子中,我们没有使用import type,而是直接使用了import引入。编译后的 JavaScript 代码可能包含类型信息

  • 这是 main.ts 文件的编译结果 ,main.js生成的 JavaScript 代码中包含了变量的声明和赋值及 MyType 的定义,因为我们使用了普通的import,MyType的定义被包含在生成的 JavaScript 代码中。这可能导致在运行时引入不必要的类型信息,增加了代码的大小。
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = require("./types");
const myVariable = {id: 1,name: 'test',
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/187762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现货白银简单介绍

在贵金属投资领域,现货白银是当前国际上最为流行、交投最为活跃的白银投资方式,其交易市场遍布全球,包括伦敦、苏黎世、纽约、芝加哥及香港等主要市场,是一种以杠杆交易和做市商的形式进行的现货交易。 现货白银可以说是当下交易模…

FL Studio21.1.1.3750中文版是数字音频工作站 (DAW)

FL Studio水果音乐编曲软件中文版,一款强大的音乐制作软件,可以进行音乐编曲、剪辑、录音、混音。FL Studio21.1.1.3750中文版是数字音频工作站 (DAW) 之一,日新月异。它是一款录音机和编辑器,可让您不惜一切代价制作精美的音乐作品并保存精彩的活动画廊…

工程化使用React

安装 首先全局安装 npm install create-react-app -g创建项目 create-react-app proName最基本的一个react工程化创建完成 项目目录

办公软件PDF转换工具 - Bruce的PDF工具pdftool

Bruce的PDF工具 - 办公软件PDF转换工具 - pdftool,支持: 1、图片转PDF,支持图片自动压缩,可预览图片 2、合并PDF,支持多个PDF合并成一个PDF 3、PDF转图片,PDF的每页转成一张图片 4、OFD转PDF,O…

ubuntu0.22.04.1安装mysql8.0及root密码注意

先看一下你的安装包是什么版本 apt list |grep mysql基本都是默认的8.0版本,然后安装: apt-get install mysql-server-8.0安装以后 ,mysql默认启动; 一般root 是没有密码的,在本地直接回车登录 我们看一下密码插件 …

WT2605-24SS高品质录音语音芯片:实现五种变音效果,为音频应用增添无限创意

在音频技术的世界里,录音芯片作为声音处理和传输的核心部件,一直以来都承载着人们对高品质音频的追求。而唯创知音推出的WT2605-24SS高品质录音语音芯片则在此基础上更进一步,带来了五种独特的变音效果,为音频应用注入了无限的创意…

5年经验之谈 —— 接口测试主要测哪些方面?

当今互联网时代,接口测试已经成为软件测试的一个重要组成部分。接口测试是指对系统各个接口进行验证,确保接口的正确性、稳定性和安全性。接口测试是软件开发过程中不可缺少的环节,它旨在确保接口能够正常工作,并且满足所需要的规…

mybatis项目中添加logback日志

1、pom.xml <dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></dependency><!-- MySQL驱动 mybatis底层依赖jdbc驱动实现,本次不需要导入连接池,mybatis自带! --><dependency&g…

移除我的电脑中wps云文档图标和资源管理器侧边栏中的wps云文档

一、移除我的电脑中wps云文档图标 通过Windows组合键&#xff1a; win R 打开运行输入 regedit &#xff0c;按回车键&#xff0c;打开注册表管理器根据路径&#xff1a;\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace&#x…

系统设计面试指南之分布式任务调度

1 简介 任务是需要资源(CPU 时间、内存、存储、网络带宽等)在指定时间内完成的一段计算工作。 通过智能地将资源分配给任务以满足任务级和系统级目标的系统称为任务调度程序。 任务调度程序&#xff1a; 及时决定和分配资源给任务的过程称为任务调度。 当我们在 Facebook 发…

虹科干货 | 适用于基于FPGA的网络设备的IEEE 1588透明时钟架构

导读&#xff1a;在基于FPGA的网络设备中&#xff0c;精确的时间同步至关重要。IEEE 1588标准定义的精确时间协议&#xff08;PTP&#xff09;为网络中的设备提供了纳秒级的时间同步。本文将介绍虹科提供的适用于基于FPGA的网络设备的IEEE 1588透明时钟&#xff08;TC&#xff…

libcef在win10下的manifest问题

在win10下集成libcef的项目运行时可能看到一个白屏的浏览器窗口&#xff0c;查日志发现报错&#xff1a; Check failed: fallback_available base::win::GetVersion() > base::win::Version::WIN8 (1 vs. 0)这是因为浏览器程序加载不到manifest文件&#xff0c;导致操作系…

#HarmonyOS:软件安装window和mac预览Hello World

Window软件地址 https://developer.harmonyos.com/cn/develop/deveco-studio#download 安装的建议 这个界面这样选&#xff0c;其他界面全部按照默认路径往下走&#xff01;&#xff01;&#xff01; 等待安装… 安装环境错误处理 一般就是本地node配置异常导致&#xff…

ubuntu22下使用nvidia 2080T显卡部署pytorch

1.直接到NVIDA官网下载相应的驱动&#xff0c;然后安装官方驱动 | NVIDIA 2.下载相应版本cuda&#xff0c;并安装&#xff0c;安装时不安装驱动 3.conda install pytorch2.1.0 torchvision0.16.0 torchaudio2.1.0 pytorch-cuda12.1 -c pytorch -c nvidia 安装pytorch。 安装…

centOS使用docker部署ElasticSearch和Kibana

一、docker部署ElasticSearch 1、创建网桥 docker network create xybnet 2、下载镜像 docker pull elasticsearch:8.2.0 3、先运行容器 docker run -d \ --name es \ --net xybnet \ -p 9200:9200 \ -p 9300:9300 \ -p 5601:5601 \ -e "discovery.typesing…

Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 构建可移植的计算机视觉环境 文章目录 前言引言简介&#xff1a;目的和重要性&#xff1a; 深入理解Docker和OpenCVDocker的基本概念和优势&#xff1a;OpenCV简介和应用领域&#xff1a;…

直播平台的选择

在选择直播平台时&#xff0c;可以根据自己的需求和目标进行决策。以下是一些常见的直播平台及其特点: 1.抖音/快手 这两个平台是短视频内容平台&#xff0c;商家或创作者可以在平台上发布自己的内容&#xff0c;打造人设&#xff0c;吸引粉丝。在直播间中&#xff0c;粉丝可…

VMware Linux(Centos)虚拟机扩容根目录磁盘空间

给VMWare虚拟机根目录扩容&#xff0c;简单有效&#xff01;_迷倒万千少女的Csir的博客-CSDN博客 https://blog.csdn.net/m0_64206944/article/details/131453844?spm1001.2014.3001.5506 上述链接融合参考下面文章 VMware Linux(Centos)虚拟机扩容根目录磁盘空间 centosli…

Docker 容器日志查看和清理

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

在零信任架构下的API安全与滥用防护(下)

防御API滥用的策略 在零信任架构下&#xff0c;防御API滥用的策略是构建强健安全防线的关键一环。策略的制定应基于对API攻击深层次的理解&#xff0c;以及对大量API相关数据的分析和利用&#xff0c;这些都是识别和预防API滥用的重要手段。 扩展对API攻击的理解 API安全不仅…