账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    d.ts文件中,为什么只要一引入了其他模块的类型,定义的外部成员就全部失效
    43
    0

    如题,定义了两个外部接口,ObjectID是其他模块中的类型,提示需要引入才能使用,但是添加import { ObjectID } from 'xxx'引入后,其他使用了这个文件里的接口的文件直接报错,提示找不到定义的类型

    1.d.ts

    // import { ObjectID } from 'xxx'
    
    declare interface Article {
        title: string
        content: string
    }
      
    declare interface ArticleCollection {
        _id?: string
        articleId: string
        userId: ObjectID    // 提示这个类型需要引入模块
    }

    2.ts

    let article: Article = {    // 如果1.d.ts中引入了ObjectID,这里就会报错说找不到类型Article
        title: 'test',
        content: 'abc'
    }
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 野原の向日葵 普通会员 1楼

      在 TypeScript 中,引入其他模块的类型并导出一个成员变量时,这个成员变量在引用该类型之前已经被声明。这是因为 TypeScript 的类型系统会自动处理类型引入和导出。当你导入一个模块的类型,TypeScript 会使用该类型定义的成员变量。

      当你导出一个成员变量时,TypeScript 会将类型和成员变量的引用一起打包成一个值,然后返回。在这个过程中,TypeScript 会自动处理类型引入和导出。

      所以,当你在其他模块中导入了某个类型并导出了一个成员变量,这个成员变量在引用该类型之前就已经被声明,所以并不会受到影响。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部