Ogg*_*las 1 typescript reactjs react-bootstrap
我正在使用组件react-router-bootstrap和DefinitelyTyped中的定义.我的问题是下载的定义与组件不匹配.我已经创建了一个拉取请求来解决这个问题,但由于我不知道它何时会被修补,我必须覆盖它.我不能只编辑位于node_modules\@types本地的类型定义文件,因为我们是一个团队,正在处理这个项目并且node_modules没有签入该文件夹.
如何覆盖类型定义?我只是不想覆盖LinkContainer.d文件,因为其他文件工作.
拉请求:
https://github.com/DefinitelyTyped/DefinitelyTyped/pull/16600
我试图创建一个LinkContainer.d.ts在我的typings文件夹中命名的文件,该文件是正确的,但它不会被拾取.在同一个文件夹中,我有一个global.d.ts接口,可以很好地接收.
/// <reference types="react-router-bootstrap" />
import { ComponentClass } from "react";
import { NavLinkProps } from "react-router-dom";
type LinkContainer = ComponentClass<NavLinkProps>;
declare const LinkContainer: LinkContainer;
export default LinkContainer;
Run Code Online (Sandbox Code Playgroud)
基于此示例的解决方案:
https://github.com/Microsoft/TypeScript/issues/11137#issuecomment-251755605
添加typings根文件夹中调用的文件夹.
编辑tsconfig.json:
{
"compilerOptions": {
//baseUrl and paths needed for custom typings
"baseUrl": ".",
"paths": {
"*": [ "./typings/*" ]
},
...
Run Code Online (Sandbox Code Playgroud)
在typings-folder中添加一个名为react-router-bootstrap(名称应与模块相同)的文件夹,并在其中调用一个文件index.d.ts.
在文件中index.d.ts添加您的自定义类型或参考:
import { ComponentClass } from "react";
import { NavLinkProps } from "react-router-dom";
type LinkContainer = ComponentClass<NavLinkProps>;
export const LinkContainer: LinkContainer;
Run Code Online (Sandbox Code Playgroud)
现在导入模块时加载了自定义类型: import { LinkContainer } from 'react-router-bootstrap';
| 归档时间: |
|
| 查看次数: |
1813 次 |
| 最近记录: |