Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在TypeScript中实例化JavaScript对象?_Javascript_Angular_Typescript - Fatal编程技术网

是否可以在TypeScript中实例化JavaScript对象?

是否可以在TypeScript中实例化JavaScript对象?,javascript,angular,typescript,Javascript,Angular,Typescript,我有一个现有的JavaScript“类”,其定义如下: function Person(name, age) { this.name = name; this.age = age; } var john = new Person('John Doe', 22); (我知道在ES6之前的JavaScript中没有实际的类) 此类需要在用TypeScript编写的Angular2组件中使用。通常,我会简单地将其实例化如下: function Person(name, age) {

我有一个现有的JavaScript“类”,其定义如下:

function Person(name, age) {
    this.name = name;
    this.age = age;
}
var john = new Person('John Doe', 22);
(我知道在ES6之前的JavaScript中没有实际的类)

此类需要在用TypeScript编写的Angular2组件中使用。通常,我会简单地将其实例化如下:

function Person(name, age) {
    this.name = name;
    this.age = age;
}
var john = new Person('John Doe', 22);
在将TypeScript代码编译成JavaScript时,我会得到一个错误,即
找不到名称“Person”
,因为Person不是TypeScript类

是否有任何解决方案可以使用现有的JavaScript类,而不将其重写为TypeScript?

也许可以尝试一下

declare var Person:any; // Magic
var john = new Person('John Doe', 22);

格泽西耶克的回答对我有用,但我需要一点修改

我的JS对象被深埋了几个函数(用来模拟名称空间)&实例化如下:

新建MyCorp.Utils.UsefulThing()

因为我必须将声明放在TS名称空间中,所以我必须用“export”标记它,以使其对TS代码可见(位于不同的名称空间中),因此我最终得到:

namespace MyCorp.Utils {
    export declare var UsefulThing: any;
}

如果省略
新的
,@GünterZöchbauer,我仍然会遇到同样的错误。Grezegorz方法似乎应该有效注意,JavaScript即使在ES 6中也没有真正的类,它只是规则模式的语法糖分。即使在ES 6中,您仍然可以与Person.prototype混为一谈。