如何避免以打字稿中相同单词结尾的命名空间冲突

时间:2018-11-28 20:40:21

标签: typescript dynamics-crm

我有代码生成的命名空间

import { InAppBrowser } from '@ionic-native/in-app-browser';

export class HomePage{

    constructor(private iab: InAppBrowser) { }

    openUrl(url:string){
       const browser = this.iab.create(url);
    }
}

我有一个自己的命名空间,在其中引用了上面的那个,但它一直认为是自引用的,因此无法从.crg_contract中看到

declare namespace Form.crg_contract.Main { ...auto generated code... }

想法?

1 个答案:

答案 0 :(得分:0)

似乎您无法访问具有相同名称的全局实体。

对应的TypeScript问题不久前被拒绝:https://github.com/Microsoft/TypeScript/issues/983

动机:“您根本不走运,因为JavaScript具有词法作用域。TypeScript无法做任何事情来让您访问同名的外部事物。”

如果这对您的项目结构有意义,则可以提出如下的一些别名。或者只是稍微更改一下名称。

def classificator(val):
    global A
    global closed
    height, width = map(int, closed.shape)
    h1 = height // 3
    w1 = width // 3
    h2 = height // 3 * 2
    w2 = width // 3 * 2
    for x in range(len(val)):
        xcoord = val[x][0]
        ycoord = val[x][1]
        if 0 <= val[x][0] < h1 and 0 <= val[x][1] < w1 and A[0, 0] == '_': #top left X
            A[0, 0] = val[x][2]