使用import语句会破坏其他类的引用吗?

尼古拉斯

作为我上一个有关bowser专门使用DefinitelyTyped定义文件的问题的后续,import按照该问题中答案的指示实施了该语句,并进一步介绍了语句。但是,现在TypeScript编译器抱怨在所有Bowser导入废话之前完美编译的代码。

假设我有MyBowserClass.ts:

import bowser = require('bowser');

namespace MyNamespace {
    export class MyBowserClass {
        constructor() {
            var isIos = (typeof bowser.ios === 'undefined') ? false : bowser.ios;
            alert(isIos);

            var myInstance = new MyNamespaceTwo.MyOtherClass(); // typescript compiler complains: Property 'MyOtherClass' does not exist on type 'typeof MyNamespaceTwo'.
        }
    }
}

然后我有MyOtherClass.ts:

namespace MyNamespaceTwo {
    export class MyOtherClass {
        constructor() {
            alert('otherclass ctor');
        }
    }
}

编译器在这里给我一个错误:

var myInstance = new MyNamespaceTwo.MyOtherClass();

Property 'MyOtherClass' does not exist on type 'typeof MyNamespaceTwo'.

所以我想也许这意味着我也需要导入MyOtherClass吗?

我通过更新两个文件来使其工作:

import bowser = require('bowser');
import otherClass = require('MyOtherClass'); // NEW IMPORT

namespace MyNamespace {
    export class MyBowserClass {
        constructor() {
            var isIos = (typeof bowser.ios === 'undefined') ? false : bowser.ios;
            alert(isIos);

            var myInstance = new otherClass.MyNamespaceTwo.MyOtherClass(); // changed this to prefix with 'otherClass'
        }
    }
}

export namespace MyNamespaceTwo { // made this EXPORT
    export class MyOtherClass {
        constructor() {
            alert('otherclass ctor');
        }
    }
}

这似乎完全混乱/疯狂。我在这里想念什么?为什么bowser定义文件无论如何都应该是一个模块(当它由全局/本质上是静态的方法名称组成时??)任何指导/帮助将不胜感激。

雅各布斯皮革

似乎您要将文件从全局声明文件更改为模块声明文件。

  • 一个全局声明文件使得其在整个项目可访问声明的类型,而无需输入任何东西。全局声明文件永远不能从另一个文件导入。它们也永远不会导出,因为其中声明的类型随处可见。

    例如。使用redux的项目可以声明一个SpecialAction可以在项目中任何地方使用的项目:

    // index.d.ts
    interface SpecialAction {
      type: string
      isSpecial: boolean
    }
    
    // src/app.ts
    let theAction: SpecialAction = {
      type: 'SPECIAL',
      isSpecial: true
    }
    
  • 一个模块声明文件出口特定类型的模块,所以出口可以在其他地方在项目中导入。在声明文件中导入或导出后,它将立即成为模块声明文件。

    // index.d.ts
    import { Action } from 'redux'
    export interface SpecialAction extends Action {
      isSpecial: boolean
    }
    
    // src/app.ts
    import { SpecialAction } from '../index'
    let theAction: SpecialAction = {
      type: 'SPECIAL',
      isSpecial: true
    }
    

我希望这有帮助? ¯\_(ツ)_/¯

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

调用super()会导致使用父类中的其他方法吗?

来自分类Dev

在ViewModel之外的其他类中实现IEventAggregator是否会破坏MVVM?

来自分类Dev

apt-get autoremove 会破坏其他依赖项吗?

来自分类Dev

在 Django 中,我可以使用带有 if 语句的获取绝对 url 来引用其他应用程序吗?

来自分类Dev

从其他类使用UIView函数会导致崩溃

来自分类Dev

MassTransit的重试功能会阻止使用其他消息吗?

来自分类Dev

在MySQL中使用JOINS会创建其他表吗?

来自分类Dev

引用类中的其他类-PHP

来自分类Dev

引用类中的其他类-PHP

来自分类Dev

派生类会破坏基类的实现吗

来自分类Dev

TypeScript元数据反射在定义之前会引用其他类

来自分类Dev

Sphinx任意交叉引用会破坏段落中断吗?

来自分类Dev

htaccess条件会破坏其他图像和页面

来自分类Dev

添加与属性的关系会破坏其他查询

来自分类Dev

我可以使用其他类的静态方法吗?

来自分类Dev

主要使用其他类的方法吗?

来自分类Dev

导入语句会增加类的大小吗

来自分类Dev

有使用其他类方法的其他方法吗?

来自分类Dev

c ++多个if语句。为什么其他语句也会执行?

来自分类Dev

Ostream会冲洗其他流吗?

来自分类Dev

Python:对类对象的其他实例的引用

来自分类Dev

Django模型引用其他类的对象

来自分类Dev

C ++如何引用其他类?

来自分类Dev

为什么TestNG测试中的非唯一组名会影响其他测试类?我可以在不同的测试类别中使用相同的组名吗?

来自分类Dev

XCode8:UICollectionView边到边,在一个性状变化(大小类)中编辑约束会破坏其他性状变化

来自分类Dev

AdressOf链接到其他类吗?

来自分类Dev

调用super()是否会导致使用父类中的其他方法?

来自分类Dev

如何动态实例化引用其他类的类

来自分类Dev

使用其他类中的函数而不对其进行修改(对非静态方法的静态引用)

Related 相关文章

  1. 1

    调用super()会导致使用父类中的其他方法吗?

  2. 2

    在ViewModel之外的其他类中实现IEventAggregator是否会破坏MVVM?

  3. 3

    apt-get autoremove 会破坏其他依赖项吗?

  4. 4

    在 Django 中,我可以使用带有 if 语句的获取绝对 url 来引用其他应用程序吗?

  5. 5

    从其他类使用UIView函数会导致崩溃

  6. 6

    MassTransit的重试功能会阻止使用其他消息吗?

  7. 7

    在MySQL中使用JOINS会创建其他表吗?

  8. 8

    引用类中的其他类-PHP

  9. 9

    引用类中的其他类-PHP

  10. 10

    派生类会破坏基类的实现吗

  11. 11

    TypeScript元数据反射在定义之前会引用其他类

  12. 12

    Sphinx任意交叉引用会破坏段落中断吗?

  13. 13

    htaccess条件会破坏其他图像和页面

  14. 14

    添加与属性的关系会破坏其他查询

  15. 15

    我可以使用其他类的静态方法吗?

  16. 16

    主要使用其他类的方法吗?

  17. 17

    导入语句会增加类的大小吗

  18. 18

    有使用其他类方法的其他方法吗?

  19. 19

    c ++多个if语句。为什么其他语句也会执行?

  20. 20

    Ostream会冲洗其他流吗?

  21. 21

    Python:对类对象的其他实例的引用

  22. 22

    Django模型引用其他类的对象

  23. 23

    C ++如何引用其他类?

  24. 24

    为什么TestNG测试中的非唯一组名会影响其他测试类?我可以在不同的测试类别中使用相同的组名吗?

  25. 25

    XCode8:UICollectionView边到边,在一个性状变化(大小类)中编辑约束会破坏其他性状变化

  26. 26

    AdressOf链接到其他类吗?

  27. 27

    调用super()是否会导致使用父类中的其他方法?

  28. 28

    如何动态实例化引用其他类的类

  29. 29

    使用其他类中的函数而不对其进行修改(对非静态方法的静态引用)

热门标签

归档