【问题标题】:Creating Javascript object from Typescript从 Typescript 创建 Javascript 对象
【发布时间】:2018-05-05 07:45:36
【问题描述】:

我正在尝试从 Typescript 创建一个 javascript 对象。

这是我要创建的 Javasript 对象: https://cdnjs.cloudflare.com/ajax/libs/chess.js/0.10.2/chess.js

在 javascript 示例中,您只需像这样创建对象:

this.engine = new Chess();

如何在 Typescript 中执行此操作?

我像这样导入了对象(我下载了文件并将其添加到我的项目中):

import * as Chess from './../chess.js';

但是,如果我尝试创建 Chess 对象,则会出现构建错误:

const engine = new Chess();

错误提示:不能将“new”与类型缺少调用或构造签名的表达式一起使用。

【问题讨论】:

  • 您是否为引用的脚本使用类型定义文件 (.d.ts)?
  • “从 Typescript 创建 Javascript 对象” 您没有“JavaScript 对象”和“TypeScript 对象”,您只有对象。 TypeScript 编译(转译)为 JavaScript。您缺少的是要使用的 JavaScript 库的类型定义文件 (*.d.ts),它告诉 TypeScript 该库中事物的类型。

标签: javascript typescript


【解决方案1】:

感谢大家的回复。我对不同的方法做了很多研究,发现这可能行得通。

npm install --save chess.js

这将为chess.js 创建一个节点模块。

从那里我可以像这样创建类对象:

import * as Chess from "./../../node_modules/chess.js";

var chess = new Chess();

我没有深入测试过,但是我可以调用类中的函数。

【讨论】:

  • 嘿迈克尔。认为这可能为时已晚,并希望它对将来的某人有所帮助。我为 chess.js 编写了类型文件,但懒得将其添加到绝对类型中(我发誓,我会在某一天得到它)同时,你可以在这里找到它:Git Repo。将它放在您的文件夹中应该允许 typescript 正确引用 lib,这意味着您可以返回使用此“import * as Chess from 'chess.js';”
猜你喜欢
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-20
  • 2015-03-05
  • 2014-06-05
  • 2019-08-04
  • 1970-01-01
相关资源
最近更新 更多