2016-10-03 219 views
1

我试图建立一个VSCode环境与打字稿V2.03的工作很简单的问题与打字稿及VSCode

我开始了一个简单的香草JavaScript片段,我可以在节点通过集成的终端测试出来。

function Person() { 
 
    this.name = ""; 
 
} 
 

 
Person.prototype.age = 0; 
 

 
let me = new Person();

我插入打字稿游乐场网站,它编译没有投诉的罚款。

但是,当我创建VSCode一个新的文件,该VSCode编辑抱怨:

enter image description here

如果我与TS-装载机插件的WebPack运行我得到这个错误: enter image description here

当我运行'tsc src/test.ts'时,它无需编译就可以编译。

我的问题:

  1. 是我的代码错误或者这只是我应该忽略投诉?
  2. 无论如何告诉VSCode停止向我展示投诉?
+1

请将错误信息包含为文本而不是图像。搜索引擎没有办法索引图片,而我们中的一些人很老,需要帮助阅读:)。 –

+0

认为一个更好的标题... – Gerfried

回答

1

TypeScript over JavaScript的主要优点之一是显式定义的类型。在这种情况下,配置Person的更好方法是将其定义为类。这将限制类型为Person的已知成员的分配。

class Person { 
    name: string; 
    age: number; 

    constructor(){ 
     this.name = ""; 
    } 
} 

let me = new Person(); 
// assignments to known members on the type Person 
me.age = 21; 
+0

我试着你的修改添加':任何',它不会清除错误。我仍然遇到错误:“TS2350:只有一个无效函数可以用'new'关键字来调用。”和“错误TS7009:'新'表达式,其目标缺少构造签名,隐式具有'任何'类型。”我知道TS和VSCode不能是这个错误,所以我必须有一个不好的配置或什么。这个类的例子工作,但我有一个项目与很多现有的函数构造函数,我不想转换为类,我希望现有的JS代码将工作。 – tommy

+0

@tommy - 我修改了我的答案,并删除了该部分,因为我现在可以看到,我错误地认为我为什么在TS中失败了。让我再玩一秒,看看它为什么失败。另一部分虽然是你应该使用打字稿的方式之一,它不同于以前在javascript中使用的方法。我说一种方式,因为它也可以使用没有具体类型的接口来完成。 – Igor

+0

我想重申,我可以在没有投诉的TypeScript游乐场中输入我的原始示例。所以它必须是VSCode设置方式的问题。 – tommy