我有一个npm包,其中包含以下类型定义(简化版):
./node_modules/ag-grid-react/main.d.ts
export declare class AgGridReact extends Component<AgGridReactProps, {}> {}
./node_modules/ag-grid-react/lib/agGridReact.d.ts
export declare class AgGridReact extends Component<AgGridReactProps, {}> {
gridOptions: GridOptions;
api: GridApi | null;
columnApi: ColumnApi;
}
我将使用以下方式在我的React组件中使用该组件:
我正在我的React组件中使用这个组件:
import { AgGridReact } from 'ag-grid-react'
const HelpRequests= () => {
const grid = useRef<AgGridReact>(null)
if (grid.current) console.log(grid.current.columnApi)
return (<AgGridReact ref={grid}/>)
}
问题:
Typescript报错说没有columnApi。它似乎从main.d.ts中选择了错误的类型。
我发现可以直接从agGridReact.d.ts中导入类型并像这样使用:
import {AgGridReact as AgGridReactType} from 'ag-grid-react/lib/agGridReact'
...
const grid = useRef<AgGridReactType>(null)
问题:
这是解决问题的正确方法吗? TypeScript 是否足够聪明,不会导入 ./node_modules/ag-grid-react/lib/agGridReact.ts 文件,从而导致我的捆绑包大小增加?
我已经搜索了很多内容,但没有找到有关仅从 node_modules 子文件夹中导入类型的任何信息。