【问题标题】:Typescript: How to export a variable打字稿:如何导出变量
【发布时间】:2017-07-21 07:30:07
【问题描述】:

我想打开'file1.ts'并写:

export var arr = [1,2,3];

然后打开另一个文件,比如说'file2.ts',然后直接访问file1.ts中的'arr':

我是这样做的:

import {arr} from './file1';

但是,当我想访问'arr'时,我不能只写'arr',而必须写'arr.arr'。第一个是模块名称。如何直接访问导出的变量名?

【问题讨论】:

  • 导出 [1, 2, 3] ?
  • 嗯。不,如果您按照发布的方式导入,那么 arr 就是数组。仅当您像这样导入它:import * as arr from "./file1" 然后您需要像 arr.arr 一样使用它
  • 嗯,这就是它应该的样子,如MDN 和typescript docs 中所述。如果它不适合您,那么您可能正在做其他事情。您的代码对我来说很好,其中arr 是数组,无需使用arr.arr。

标签: typescript import module export


【解决方案1】:

如果你这样做:

var arr = [1,2,3];
export default arr;

...

import arr from './file1';

那么它应该可以工作

【讨论】:

  • 在 file1 中可能是 myArr 但应该导入 import arr from './file1' 以在 file2 中用作 arr
  • 我更喜欢其他解决方案中的命名导出。
【解决方案2】:

有两种不同类型的导出,命名和默认。

每个模块可以有多个命名导出,但只能有一个默认导出。

对于命名导出,您可以尝试以下操作:

// ./file1.ts
const arr = [1,2,3];
export { arr };

然后导入你可以使用原来的语句:

// ./file2
import { arr } from "./file1";
console.log(arr.length);

这将解决您提到的arr.arr 的需求。

海盗怎么知道他们是海盗? 他们认为,因此他们 ARR!!

【讨论】:

    猜你喜欢
    • 2019-04-10
    • 2021-11-29
    • 1970-01-01
    • 2017-09-14
    • 2022-07-20
    • 2021-01-20
    • 2012-11-28
    • 1970-01-01
    • 2018-06-18
    相关资源
    最近更新 更多