typescript - 如何从 TypeScript 上的另一个文件导入常量?
问题描述
这很尴尬,但我试图将所有常量分离到一个新文件中并导入它,以保持干净。但是,我尝试过的任何方法都不起作用,这里关于 SO 的所有其他问题似乎都围绕着导入类和函数。
我有一个名为 的文件constants.tsx
,其中声明了所有常量:
export const default_bg = "#2456a5"
export const default_light_font_color = "white"
export const default_lg_font_size = 11
export const default_md_font_size = 10
export const default_sm_font_size = 9
export const default_dark_font_color = "#000028"
export const default_font = "arial"
以及到目前为止具有所有功能的主文件App.tsx
:
import * as React from 'react';
import { Header } from './Header';
import { Body } from './Body';
import * as defaults from 'constants'
...
但是,defaults
(或我给导入的任何其他名称)似乎不包含常量。写作defaults.default_bg
给了我这个错误:
TS2339:“typeof import(“constants”)”类型上不存在属性“default_bg”。
并console.log(defaults)
打印:
我知道这可能非常简单,但我不知道该怎么做。一般来说,我是 Typescript 和 Javascript 的新手。
解决方案
从“常量”导入 * 作为默认值
上面告诉节点在里面/node_modules
寻找一个constants
模块。
将该行更改为:
import * as defaults from './path/to/constants'
至于打印到控制台的内容是另一回事,因为它肯定会在您的defaults
导入标识符中添加一些内容。
推荐阅读
- shell - 使用条件合并 awk/unix 中重复列的行
- javascript - 在 contenteditable 中插入一个 span,然后用户无法在刚刚插入的 span 之后继续输入
- java - 根据控制我们代码质量的工具,Spring bean 不是线程安全的
- firebase - 如何确保用于视觉图像的 Firebase ML 套件为应用中的每个新面孔生成新的面孔 ID?
- php - Symfony 进度条 - 简单的绿色(如
)? - python - 为什么 x 坐标是时间戳列表,鼠标移动(悬停)时不显示为 matplotlib 中的坐标?
- javascript - JavaScript打印数组结果在同一个文件中
- java - Google People API - 如何删除联系人的文字生日?
- java - JaxbAnnotationIntrospector ClassNotFound 在第一次调用
- reactjs - 创建逻辑以将数据传递到反应导航上的前一个屏幕时,TS lint 触发错误