console.log无法在Angular2组件(Typescript)

时间:2016-06-16 21:17:43

标签: typescript angular

我对Angular2和打字稿都比较新。由于打字稿是javascript的超集,我希望像console.log这样的函数能够正常工作。 console.log在组件类之外的.ts文件中完美运行,但不能像我在组件类中所期望的那样工作。

// main.ts

import { Component } from '@angular/core';
console.log("Hello1"); //1. This works perfectly

@Component({..)
export class App {
 s: string = "Hello2";
 // console.log(s); //2. This gives compilation error (when uncommented)
 // Error: Function implementation is missing or not immediately following the declaration.
}

我有什么遗失的吗?

3 个答案:

答案 0 :(得分:52)

它没有工作,因为console.log()它不在"可执行区域"该课程" App"。

类是由属性和方法组成的结构。

让代码执行的唯一方法是将其放在将要执行的方法中。例如:constructor()



console.log('It works here')

@Component({..)
export class App {
 s: string = "Hello2";
            
  constructor() {
    console.log(this.s)            
  }            
}




将类视为普通的javascript对象。

期望这个有用吗?



class:  {
  s: string,
  console.log(s)
 }




如果您仍然不确定,请尝试使用typescript playground,在那里您可以看到生成普通javascript的打字稿代码。

https://www.typescriptlang.org/play/index.html

答案 1 :(得分:6)

console.log应该包含在一个函数中,"默认"每个类的函数都是constructor,所以它应该在那里声明。

import { Component } from '@angular/core';
console.log("Hello1");

 @Component({
  selector: 'hello-console',
})
    export class App {
     s: string = "Hello2";
    constructor(){
     console.log(s); 
    }

}

答案 2 :(得分:0)

还尝试更新浏览器,因为Angular需要最新的浏览器。 检查:https://angular.io/guide/browser-support

我在更新最新浏览器后修复了console.log问题。