[英]Possible to instantiate object from another objects method (javascript)
[英]Is it possible to instantiate a JavaScript object in TypeScript?
我有一個現有的 JavaScript "class" ,它的定義如下:
function Person(name, age) {
this.name = name;
this.age = age;
}
(我知道在 ES6 之前的 JavaScript 中沒有實際的類)
此類需要在用 TypeScript 編寫的 Angular2 組件中使用。 通常,我會像這樣簡單地實例化它:
var john = new Person('John Doe', 22);
將 TypeScript 代碼編譯為 JavaScript 時,我會收到一條錯誤消息,提示Cannot find name 'Person'
,因為 Person 不是 TypeScript 類。
是否有任何解決方案可以使用現有的 JavaScript 類,而無需將其重寫為 TypeScript?
也許試試
declare var Person:any; // Magic
var john = new Person('John Doe', 22);
Grzesiek 的回答對我有用,但我需要做一些小的修改。
我的 JS 對象深埋了幾個函數(以模擬命名空間)並實例化如下:
new MyCorp.Utils.UsefulThing();
因為我必須將聲明放在 TS 命名空間中,然后我必須用“導出”標記它才能對 TS 代碼(位於不同的命名空間中)可見,所以我最終得到:
namespace MyCorp.Utils {
export declare var UsefulThing: any;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.