首页 > 其他分享 >TypeScript 中的 Export 和 Import

TypeScript 中的 Export 和 Import

时间:2024-01-15 10:33:51浏览次数:27  
标签:TypeScript name 导出 module 导入 export import Import Export

TypeScript 中的 Export 和 Import

AUG 30TH, 2016 7:33 AM

在 TypeScript 中, 经常要使用 export 和 import 两个关键字, 这两个关键字和 es6 中的语法是一致的, 因为 TypeScript = es6 + type !

注意:目前没有任何浏览器实现 export 和 import ,要在浏览器中执行, 必须借助 TypeScript 或者其它的转换器!

export

export 语句用于从文件(或模块)中导出函数, 对象或者基础类型, 语法如下:

export { name1, name2, …, nameN };
export { variable1 as name1, variable2 as name2, …, nameN };
export let name1, name2, …, nameN; // also var
export let name1 = …, name2 = …, …, nameN; // also var, const

export default expression;
export default function (…) { … } // also class, function*
export default function name1(…) { … } // also class, function*
export { name1 as default, … };

export * from …;
export { name1, name2, …, nameN } from …;
export { import1 as name1, import2 as name2, …, nameN } from …;

nameN表示要导出的标识符, 可以在另一个文件中通过 import 语句导入。

有两种类型的导出, 分别对应上面的语法:

命名的导出

export { myFunction } // 导出已经声明的函数
export const foo = Math.sqrt(2) // 导出一个常量
当需要导出多个值的时候, 命名的导出就非常有用了, 在导入时, 可以使用同样的名字来引用对应的值, 示例:

// mylib.ts
export function cube(x: number): number {
    return x * x * x;
}
const foo: number = Math.PI * Math.sqrt(2);
export { foo }
在另一个文件 main.ts 中, 这样使用:

// main.ts
import { cube, foo } from './mylib';
console.log(cube(3)); // 27
console.log(foo); // 4.555806215962888
默认的导出

export default function () {} // 导出默认的函数, 不使用花括号
一个文件(模块)默认的导出只能有一个, 可以是类,函数, 对象等, 示例:

// mylib.ts
export default function (x: number): number {
    return x * x * x;
}

在另一个文件 main.ts 中, 这样使用:

// main.ts
import cube from './mylib';
console.log(cute(3)); // 27
import

import 与 export 对应, 用于导入其它文件(模块)导出的函数, 对象或者其他基础类型, 语法如下:

import defaultMember from "module-name";
import * as name from "module-name";
import { member } from "module-name";
import { member as alias } from "module-name";
import { member1 , member2 } from "module-name";
import { member1 , member2 as alias2 , [...] } from "module-name";
import defaultMember, { member [ , [...] ] } from "module-name";
import defaultMember, * as name from "module-name";
import "module-name";

name 用来接收导入的值的对象的名称; member, memberN 要导入的外部模块的导出名称; defaultMember 要导入的外部模块的默认导出的名称; alias, aliasN 要导入的外部模块的导出的别名; module-name 要导入的外部模块的名称, 通常是文件名; import 常见的用法有:

导入整个模块的内容, 在当前作用域插入 myModule 变量, 包含 my-module.ts 文件中全部导出的绑定:

import * as myModule from 'my-module';
导入模块的某一个导出成员, 在当前作用域插入 myMember 变量:

import { myMember } from 'my-module';
导入模块的多个导出成员, 在当前作用域插入 foo 和 bar 变量:

import {foo, bar} from 'my-module';
导入模块的成员, 并使用一个更好用的名字:

import {reallyReallyLongModuleMemberName as shortName} from 'my-module';
import {reallyReallyLongModuleMemberName as shortName, anotherLongModuleName as short} from 'my-module';
将整个模块座位附加功能导入, 但是不导入模块的额导出成员

import 'my-module';
导入模块的默认导出:

import myDefault from 'my-module';
导入模块的默认导出和命名导出:

import myDefault, * as myModule from 'my-module';
// myModule used as a namespace
或者

import myDefault, {foo, bar} from 'my-module';
// specific, named imports

Posted by 陈斌彬 Aug 30th, 2016 7:33 am  typescript

标签:TypeScript,name,导出,module,导入,export,import,Import,Export
From: https://www.cnblogs.com/sexintercourse/p/17964884

相关文章

  • 初中英语优秀范文100篇-058The Importance of Doing Sports-做运动的重要性
    PDF格式公众号回复关键字:SHCZFW058记忆树1Nowadays,moreandmorepeopleprefertostayathomewatchingTVandsurfingtheInternet,whichleadstofatnessandevenseriousillness.翻译如今,越来越多的人更喜欢待在家里看电视和上网,这导致了肥胖,甚至严重的疾病......
  • Vue 3 + TypeScript + Vite + Element-Plus + Router + Axios + Pinia项目搭建(内含完
    Vue3+TypeScript+Vite+Element-Plus+Router+Axios+Pinia项目搭建(内含完整架构)安装Vue3+ts+vitenpminitvite@latest选择y,新建项目名称,选择vue,选择vue-ts下载完成后执行以下命令行cd新建的项目名称npminpmrundev安装Element-Plusnpminstallelement-plus-......
  • typescript实现一个最简的装饰器依赖注入
    装饰器依赖注入,元数据键是关键因此必须开启ts装饰器和ts元数据tsconfig.json"experimentalDecorators":true,//开启装饰器"emitDecoratorMetadata":true,//开启元数据并且安装reflect-metadata支持元数据编程全局入口倒入一次即可import"reflect-metadata";类型元数据:......
  • onnx.onnx_cpp2py_export.checker.ValidationError
    onnx.onnx_cpp2py_export.checker.ValidationError引言在深度学习领域,模型转换和模型部署是非常关键的环节。OpenNeuralNetworkExchange(ONNX)是一种开放的深度学习模型表示和转换的标准,为不同深度学习框架之间的模型共享和使用提供了便利。在ONNX中,模型的正确性和兼容性是非......
  • [TypeScript]介绍及安装
    TypeScript是JavaScript的超集,扩展了JavaScript的语法。因此现有的JavaScript代码可与TypeScript一起工作无需任何修改,TypeScript通过类型注解提供编译时的静态类型检查。TypeScript可处理已有的JavaScript代码,并只对其中的TypeScript代码进行编译。 TypeScrip......
  • 不是银趴~是@Import!
    首先我们要明确:@Import注解是Spring提供的。然后我们看一下该注解的官方注释:Indicates one or more component classes to import — typically @Configuration classes.Provides functionality equivalent to the <import/> element in Spring XML. ......
  • Spring cloud No spring.config.import property has been defined
    *[解决SpringCloud2021.0.5版本,使用nacos做配置中心,报Nospring.config.importpropertyhasbeendefined的问题\_addaspring.config.import=nacos:propertytoyour-CSDN博客](https://blog.csdn.net/weixin_44951259/article/details/127929284)*[SpringCloud202......
  • 在TypeScript中重命名类型索引?
    在TypeScript中,要重命名类型索引,你可以使用TypeScript的类型别名或接口来实现。下面是两种常见的方法:1.使用类型别名(TypeAliases):类型别名允许你为一个类型定义一个别名,通过使用关键字type来创建。你可以在别名中定义索引类型,并为该类型定义一个新的名称。```typescripttypeMy......
  • 【译】如何提高我的 TypeScript 技能
    在这篇文章中,我将向您展示我如何在TypeScript中提高自己的技能。我会向您介绍5个令人满意的操作符,这将帮助您更好地理解TypeScript和如何使用它。以下是我将要介绍的操作符:非空断言操作符可选链操作符空合并操作符明确类型断言明确类型转换1.非空断言操作符非空断言操作符是......
  • [Typescript] This type
    Sometimeswehaveafree-standingfunctionthathasastrongopinionaroundwhatthiswillendupbeing,atthetimeitisinvoked.Forexample,ifwehadaDOMeventlistenerforabutton:<buttononClick="myClickHandler">ClickMe!</b......