簡體   English   中英

是否可以在 TypeScript 中實例化 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM