TypeScript中如果关联类型声明文件和JS文件?

问题描述

我们的项目,有的人使用TS,有的人只用JS,所以公共模块都是用JS写的,就需要给添加TS的类型声明文件d.ts,但是声明之后我发现没有生效,不知道该如何关联?

问题出现的环境背景及自己尝试过哪些方法

我也尝试过给项目中的第三方JS库写类型声明文件,那个是生效的,但是给自己写的JS库写的时候就没有生效,不知道是不是因为前者是全局,后者是需要import相对路径导入?

相关代码

给一个BasePage的公共JS文件写类型声明,这个是类型声明文件里面的一段代码:

declare class BasePage<P extends BasePageProps> extends IBUPage<P> {
        navigation: object;
        app: object;
        pageKey: string;
        pageConfig: object;
        constructor(props: P, ext: object): void;
        getPageId(): number;
        _getRoute(targetPageName: string): businessPage[];
        _isRouteExist(targetPageName: string): boolean;
        _popToPage(targetPageName: string): void;
        diyBackPage(targetPageName: string): void;
        diyForwardPage(targetPageName: string, params: object, options: object): void;
        backToDefaultPage(): void;
        jumpToDiyIndex(): void;
    }

这个是调用:

import BasePage from '../../frame/BasePage'
export default class HotelList extends BasePage<IProps> {
    constructor(props) {
        super(props);
        console.log(this.props.hotelList)
    }
    renderPageContent() {
        return (
            <ViewPort>
                <View>
                    {
                        _.map([1, 2, 3], (item) => {
                            return <Text key={item}>hello, world</Text>
                        })
                    }
                </View>
            </ViewPort>
        )
    }
}

但是这里的BasePage依然是找不到类型。

请问一下,d.ts文件和basePage.js文件放的位置是不是有什么讲究?还是我declare有问题?或者是需要在tsconfig里面配置一下?

阅读 4.5k
1 个回答

好吧,这个怪我没有好好看文档了,这里有答案:链接描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题