将名称空间转换为基于模块的打字稿代码

时间:2018-05-22 01:14:53

标签: typescript

c#程序员在这里。 我开始研究中型ts代码库。模拟现有的c#代码库。我开始做

namespace Foo
{
    export function x;
    export const y;
    export class C1{}
}

用于映射到c#和“real”类

中的静态类和函数的东西

Foo在一个名为Foo.js的文件中。要在另一个文件中调用我刚刚说过Foo.x()的内容。

一切都很好,但更多阅读导致我'不使用命名空间'。所以重构的时间

我只是想确保我正在进行正确的转换。所以现在我做了

export class Foo
{
    public x(){};
    public static readonly  y;
    public class C1{}
}

对const的替代似乎是满口的。当我打电话给我时,我必须去。

import {Foo} from "./Foo";
Foo.x();

这是正确的吗?最佳?

注意 - 我想保持调用代码正在执行Foo.x(); var c = Bar.wibble;等。我真的将不同功能部分的命名空间分开了

1 个答案:

答案 0 :(得分:4)

好消息是,你自己的转换比自己需要的更难。而不是你写的,试着去:

import { x } from './Foo';
x();

然后在您的消费文件中,您只能导入所需内容:

import * as Foo from './Foo';
Foo.x();

或者,如果您想继续像命名空间一样使用它,您可以:

namespace

在许多情况下,您可以简单地删除包装def findcase(year): select = Select(driver.find_element_by_id('SheetContentPlaceHolder_coaCaseSearch_ddlCaseYear')) select.select_by_value(str(year)) 声明并完成。