我正在使用typescript 2.6.1。我正在使用react-table并在其index.js文件中声明:
import defaultProps from './defaultProps'
import propTypes from './propTypes'
export const ReactTableDefaults = defaultProps
export default class ReactTable extends Methods(Lifecycle(Component)) ...
在我的typescriptfile中,我想使用ReactTableDefaults成员,但我不知道如何访问它。我已经有了@ types / react-table / index.d.ts文件中定义的react-table类型的导入。当我尝试访问ReactTableDefaults时,intellij无法找到它。有人可以帮我找到正确的导入声明吗?
import ReactTable, {Column as RTColumn} from 'react-table'; //gets stuff from index.d.ts
import RT = require('react-table'); // can only see 'default'
我也试过
import ReactTableDefaults from 'react-table';
但是ts转换器只是说无法找到ReactTableDefaults。
编辑:ReactTableDefaults未在index.d.ts文件中定义。我正试图从模块文件中获取它。
答案 0 :(得分:1)
如果您想在ReactTableDefaults
下获取外部定义,请执行以下操作:
import * as ReactTableDefaults from 'react-table';
之后您可以访问ReactTableDefaults.myAttribute
。
但注意:
这可能会产生不良后果:如果导入的来源包含您要导入的属性as
,则需要像ImportedAsThisName.ImportedAsThisName
那样访问它,即:
import * as MyLib from 'my-lib'
//assuming that the "MyLib" library had an attribute like "methodA" you'd access it like MyLib.methodA
但想象如下:
import * as methodA from "my-lib"
要访问methodA
属性,您现在需要做以下事情:
methodA.methodA()
我希望这很清楚。
答案 1 :(得分:0)
ReactTableDefaults
是一个命名导出。您在问题结束时的尝试是尝试将其导入,就好像它是默认导入一样。
假设您将index.js
视为'react-table'
,那么您可以将其添加到import
:
import ReactTable, {Column as RTColumn, ReactTableDefaults} from 'react-table';
// -----------------------------------^^^^^^^^^^^^^^^^^^^^
...或者如果您愿意,可以自行完成:
import {ReactTableDefaults} from 'react-table';
答案 2 :(得分:0)
我找到了之前的解决方案(由同事送给我),但我不记得它太乱了。
import * as RT from 'react-table';
const defaultProps = (RT as any).ReactTableDefaults;