无法从导入的文件

时间:2017-01-05 19:34:43

标签: angular typescript

我正在尝试在Angular 2 / TypeScript项目中重构一些代码,但是遇到了一些麻烦。

以下是我所拥有的一些代码的简化版本:

example.component.ts:

export class ExampleComponent implements OnInit {
    testString1: string;
    testString2: string;

    ngOnInit(): void {
        this.testString1 = 'first test string value';
        this.testString2 = 'second test string value';  
    }
}

虽然这个例子很简洁,但我还有很多属性要在我的项目中定义。为了减少混乱,我想在一个单独的文件中定义某些变量并导入它们,所以我做了类似的事情:

variables.ts:

export class Variables {
    testString1: string;
    testString2: string;
}

example.component.ts:

import { Variables }  from './variables';

export class ExampleComponent implements OnInit {    

    ngOnInit(): void {
        this.testString1 = 'first test string value';
        this.testString2 = 'second test string value';
    }
}

根据Visual Studios的说法,找到了导入的文件,但是我收到了以下错误:

  

Build:属性'testString1'在'ExampleComponent'类型上不存在。

     

Build:属性'testString2'在'ExampleComponent'类型上不存在。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

当您使用'这时,您需要在课堂上使用testString1和testString2:

export class ExampleComponent implements OnInit {    
    public testString1:string;
    public testString2:string;

    ngOnInit(): void {
        this.testString1 = 'first test string value';
        this.testString2 = 'second test string value';
    }
}

如果你想要变量类中的值,你有两种方法:

1)

export class Variables {
    public static testString1: string;
    public static testString2: string;
}

和:

import { Variables }  from './variables';

export class ExampleComponent implements OnInit {    

    ngOnInit(): void {
        Variables.testString1 = 'first test string value';
        Variables.testString2 = 'second test string value';
    }
}

2)保持现在的变量并执行此操作:

 export class ExampleComponent implements OnInit {    
        public variables:Variables = new Variables();

        ngOnInit(): void {

            this.variables.testString1 = 'first test string value';
            this.variables.testString2 = 'second test string value';
        }
    }
祝你好运!